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

how to set background-image in pyqt6 without qrc system

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

 QtCore.QDir.addSearchPath('icons', 'path_to_icons/')
 icon = QtGui.QIcon('icons:myicon.png')       
  1. 查看 了解更多信息。

  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()