1

私のアプリケーションには次のような構造があります。

|-App
|
|-functions
|
|-ui
|--ui.py
|    
|images
|
|main.py

いくつかのスクリプトを含むfunctionsフォルダーと、ui.pyファイルにPyQtで生成されたコードを含むuiフォルダーがあります。

ui.pyをロードしてインターフェイスを表示するmain.pyファイルと、ui.pyがルートの「images」フォルダーからいくつかの画像をロードします。

スクリプトをPythonで直接実行すると(main.pyファイルのdouble clic)、画像が表示されません。

しかし、「python main.py」でターミナルを使用すると、画像は正しく表示されます。

ui.pyの参照は次のようなものです。

icon.addPixmap(QtGui.QPixmap(_fromUtf8("images/flags/MXN.png"))
4

1 に答える 1

7

Qt Designer Resource Systemを使用して、画像のリソースファイルを作成します。

次に、PyQtのpyrccツールを使用して、QtリソースファイルをPythonモジュールに変換します。

注意:Pythonリソースモジュールは、UIファイルと同じディレクトリに配置する必要があります。したがってApp/resources.qrc、Qt Designerでリソースファイルを作成した場合は、次のように変換する必要があります。

pyrcc5 -o App/ui/resources_rc.py App/resources.qrc

PySide(Qt4)の同等のツールはでしたpyside-rcc。PySide2 / PySide6の場合、Qtrccツール自体にPython出力を生成するオプションがあります。

rcc -g python -o App/ui/resources_rc.py App/resources.qrc

更新

PyQt6はpyrccツールを削除しました(参照:PyQt6(pyrccがない)でリソースを提供するにはどうすればよいですか?)。

于 2012-08-07T18:44:47.897 に答える