【问题标题】:how to set background-image in pyqt6 without qrc system如何在没有 qrc 系统的 pyqt6 中设置背景图像
【发布时间】:2021-09-30 23:19:43
【问题描述】:

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

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

【问题讨论】:

    标签: python python-3.x pyside6 pyqt6


    【解决方案1】:
    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 2018-01-08
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      相关资源
      最近更新 更多