我对 PyQt6 和 PySide6 中的资源系统有疑问。 首先为什么PySide6仍然支持qrc系统而PyQt6不支持。 其次如何在PyQt6中使用图像作为小部件的背景,我看到了addSearchPath()和setSearchPath()的概念,但我不明白如何使用它并且它不起作用。
QtCore.QDir.addSearchPath('icons', 'path_to_icons/')
icon = QtGui.QIcon('icons:myicon.png')
最佳答案
检查How can resources be provided in PyQt6 (which has no pyrcc)?了解更多信息。
“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/