3

Pyinstaller を使用して exe を生成するのに問題があります。私の最大の問題は「qmlファイルを含める」ことです。私はたくさん試しましたが、それでも失敗しました。QMLを含めるためにスペックファイルをどのように書くべきかを誰かが教えてくれることを願っています。

一般的に、私が望むのは、Pyside + QML アプリケーションから Windows Exe を作成することです。しかし、どのように?

main.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import QDeclarativeView

# Create Qt application and the QDeclarative view
app = QApplication(sys.argv)
view = QDeclarativeView()
# Create an URL to the QML file
url = QUrl('view.qml')
# Set the QML file and show
view.setSource(url)
view.setResizeMode(QDeclarativeView.SizeRootObjectToView)
view.show()
# Enter Qt main loop
sys.exit(app.exec_())

view.qml

import QtQuick 1.0

Rectangle {
    width: 200
    height: 200
    color: "red"

    Text {
        text: "Hello World"
        anchors.centerIn: parent
    }
}
4

1 に答える 1

4

PySide については不明ですが、2.1 の PyInstaller は PyQt5 をサポートしています。一般的な手順は似ていると思います。

PyQt5 の場合、qml ファイルをリソース ファイルに入れ、それを pyrcc5 (pyside-rcc) を使用してコンパイルします。次に、生成された python モジュールをインポートすると、PyInstaller はそれを他のモジュールと同様に扱います。

qml ファイルを直接インクルードすることもできます。このようなことをすることによって:

extrafiles = [('myfile.qml', os.path.join('path', 'to', 'myfile.qml'), 'DATA')]

...

coll = COLLECT( exe,
               a.binaries + extralibs,
               a.zipfiles,
               a.datas + extrafiles,
               ...

によって返される qml ディレクトリから qml ライブラリをパッケージ化する必要がある場合もありますqmake -query QT_INSTALL_QML

于 2013-10-04T02:36:56.927 に答える