Python “返回”路径:/“文件名”;pyqt函数中的QIcon

Python “返回”路径:/“文件名”;pyqt函数中的QIcon,python,pyqt,Python,Pyqt,我试图理解其他人的代码,他正在使用QIcon功能设置窗口图标。由于我以前使用了QIcon,我在程序中使用了如下绝对路径: 。。。 app=QApplication([]) app.setWindowIcon(QIcon('.\\MyApp\\data\\Logo.png')) 开始窗口=StartWindow() 开始_window.show() app.exit(app.exec_()) ... 在他的代码中,他使用一个实用函数调用QIcon来更改文件名。但是他调用的不是绝对路径,而是QIc

我试图理解其他人的代码,他正在使用
QIcon
功能设置窗口图标。由于我以前使用了
QIcon
,我在程序中使用了如下绝对路径:

。。。
app=QApplication([])
app.setWindowIcon(QIcon('.\\MyApp\\data\\Logo.png'))
开始窗口=StartWindow()
开始_window.show()
app.exit(app.exec_())
...
在他的代码中,他使用一个实用函数调用QIcon来更改文件名。但是他调用的不是绝对路径,而是
QIcon('://'+filename)

我无法通过这条“相对”的道路获得同样的结果。我可能会发现任何其他错误或误解使用<代码>:/<代码> < /p> < p>前缀“:”:“”是一个虚拟路径,它只识别Qt的元素,因为它是基于C++的,它的作用是在二进制中嵌入资源(图像、文件或任何类型的静态文件)。在python中,这一思想也是使用资源作为源来生成.py的

在C++中使用RCC工具,使用PYQT5 PyrC5(PYQT4 PyrC4 4),PySID2中可以使用PySID2 RCC或RCC。 使用它的步骤很简单:

  • 创建一个.qrc,您可以使用Qt设计器(检查菜单视图->资源浏览器)来实现,尽管格式是简单的xml
  • myresource.qrc

    ```
    <RCC>
      <qresource prefix="/">
        <file>Logo.png</file>
      </qresource>
    </RCC>
    ```
    
  • 然后将其导入要使用它的文件:

    main.py

    # ...
    import myresource_rc
    # ...
    
  • 使用它:

    app.setWindowIcon(QIcon(':/Logo.png'))
    
  • app.setWindowIcon(QIcon(':/Logo.png'))