10

PyQt4 に小さなプログラムがあり、そのプログラムを Exe にコンパイルしたいと考えています。私はそれを行うためにpy2exeを使用しています。次のコードを使用して Windows タイトル バーにアイコンを正常に設定できますが、exe にコンパイルするとアイコンが失われ、デフォルトの Windows アプリケーションが表示されます。ここに私のプログラムがあります:

import sys
from PyQt4 import QtGui


class Icon(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QtGui.QIcon('c:/python26_/repy26/icons/iqor1.ico'))


app = QtGui.QApplication(sys.argv)
icon = Icon()
icon.show()
sys.exit(app.exec_())

**** py2exe の setup.py はこちら****

from distutils.core import setup
import py2exe

setup(windows=[{"script":"iconqt.py"
               ,"icon_resources": [(1, "Iqor1.ico")]}]
                   ,options={"py2exe":{"includes":["sip", "PyQt4.QtCore"]}})
4

4 に答える 4

15

問題は、py2exe に qt アイコン リーダー プラグインが含まれていないことです。data_files パラメータを使用して含めるように指示する必要があります。これらの行に沿ったもの:

setup(windows=[{"script":script_path,
                "icon_resources":[(1, icon_path)]}], 
      data_files = [
            ('imageformats', [
              r'C:\Python26\Lib\site-packages\PyQt4\plugins\imageformats\qico4.dll'
              ])],
      options={"py2exe":{"packages":["gzip"], 
                         "includes":["sip"]}})
于 2011-03-24T19:57:43.533 に答える
3

.icoで作成している EXE または DLL から直接ファイルを参照する必要があると思いますpy2exe。setup.py スクリプトが正しいようです。http ://www.py2exe.org/index.cgi/CustomIcons をご覧ください。wxWidgets の例がありますが、Qt に適応させることができます。

于 2010-02-22T17:03:07.953 に答える
0

YourApp.rcというファイルを作成し、次の行を追加することをお勧めします。

IDI_ICON1   ICON    DISCARDABLE "res/icons/app_icon.ico"

次に、.PROファイルに次の行を追加します。

win32{
RC_FILE = YourApp.rc
}

それはあなたの問題を解決するはずです!

于 2010-02-23T12:49:19.950 に答える