python - 如何在没有qrc系统的情况下在pyqt6中设置背景图像

标签 python python-3.x pyside6 pyqt6

我对 PyQt6 和 PySide6 中的资源系统有疑问。 首先为什么PySide6仍然支持qrc系统而PyQt6不支持。 其次如何在PyQt6中使用图像作为小部件的背景,我看到了addSearchPath()和setSearchPath()的概念,但我不明白如何使用它并且它不起作用。

 QtCore.QDir.addSearchPath('icons', 'path_to_icons/')
 icon = QtGui.QIcon('icons:myicon.png')       

最佳答案

  1. 检查How can resources be provided in PyQt6 (which has no pyrcc)?了解更多信息。

  2. “path_to_icons”很可能不正确,您必须构造绝对路径,而不是使用相对路径。

├── icons
│   └── myicon.png
└── main.py
import os
import sys
from pathlib import Path

from PyQt6.QtCore import QDir
from PyQt6.QtGui import QIcon
from PyQt6.QtWidgets import QApplication, QToolButton

CURRENT_DIRECTORY = Path(__file__).resolve().parent


def main():
    app = QApplication(sys.argv)
    QDir.addSearchPath("icons", os.fspath(CURRENT_DIRECTORY / "icons"))

    icon = QIcon("icons:myicon.png")
    assert not icon.isNull()

    button = QToolButton()
    button.setIcon(icon)
    button.resize(100, 40)
    button.show()

    sys.exit(app.exec())


if __name__ == "__main__":
    main()

关于python - 如何在没有qrc系统的情况下在pyqt6中设置背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68505799/

相关文章:

python - Django 和自定义身份验证后端(Web 服务)+ 无数据库。如何在 session 中保存内容?

python - 试图在两个字符串中找到匹配项 - Python

Python - 连续转换日期时间对象,同时保持非日期时间对象相同

python - 无法从 pyside 应用程序中的 qtquick2plugin.dll 中提取插件元数据

python - Selenium webdriver 和 unicode

python - 使用 Python 的 ETL

Python获取有关组策略的信息

python - 有没有办法通过使用后缀号作为迭代器来对不同声明的字符串变量求和?

python - 如何从功能 QSystemTrayIcon 向上下文菜单添加操作

python - PySide6 & WSL2 : ImportError: libEGL. so.1