我已经创造了Qt设计形式的实体模型,现在我想的形式保存为一个文件(EXE?)文件,以便它可以在电脑上运行。
我会用“的Python为EXE”(如果是,如何)? 我不知道很多关于编程呢。
Qt设计保存文件用的.ui扩展。
我已经创造了Qt设计形式的实体模型,现在我想的形式保存为一个文件(EXE?)文件,以便它可以在电脑上运行。
我会用“的Python为EXE”(如果是,如何)? 我不知道很多关于编程呢。
Qt设计保存文件用的.ui扩展。
与PyInstaller创建一个独立的应用程序请按照下列步骤操作:
这段代码保存为您MyWidget.ui文件:
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>147</width> <height>125</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QLineEdit" name="lineEdit"/> </item> <item> <widget class="QPushButton" name="pushButton"> <property name="text"> <string>Click Me</string> </property> </widget> </item> </layout> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>147</width> <height>25</height> </rect> </property> <widget class="QMenu" name="menuMenu"> <property name="title"> <string>Menu</string> </property> </widget> <addaction name="menuMenu"/> </widget> <widget class="QStatusBar" name="statusbar"/> </widget> <resources/> <connections/> </ui>
使用pyuic4与您的操作系统的shell命令行命令编译您MyWidget.ui文件到Ui_MyWidget.py:
pyuic4 "/path/to/MyWidget.ui" -o "Ui_MyWidget.py"
此命令将创建与此内容的当前目录下的文件Ui_MyWidget.py:
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'MyWidget.ui' # # Created: Fri Dec 28 03:45:13 2012 # by: PyQt4 UI code generator 4.7.3 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(147, 125) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName("verticalLayout") self.lineEdit = QtGui.QLineEdit(self.centralwidget) self.lineEdit.setObjectName("lineEdit") self.verticalLayout.addWidget(self.lineEdit) self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setObjectName("pushButton") self.verticalLayout.addWidget(self.pushButton) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 147, 25)) self.menubar.setObjectName("menubar") self.menuMenu = QtGui.QMenu(self.menubar) self.menuMenu.setObjectName("menuMenu") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.menubar.addAction(self.menuMenu.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Click Me", None, QtGui.QApplication.UnicodeUTF8)) self.menuMenu.setTitle(QtGui.QApplication.translate("MainWindow", "Menu", None, QtGui.QApplication.UnicodeUTF8))
这段代码保存为您MyWidget.py文件:
#!/usr/bin/env python #-*- coding:utf-8 -*- from PyQt4 import QtCore, QtGui from Ui_MyWidget import Ui_MainWindow class MyWidget(QtGui.QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MyWidget, self).__init__(parent) self.setupUi(self) @QtCore.pyqtSlot() def on_pushButton_clicked(self): self.lineEdit.setText("A Qt standalone app!") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MyWidget() window.resize(300, 30) window.show() sys.exit(app.exec_())
请检查您是否可以运行MyWidget.py没有错误(MyWidget.py和Ui_MyWidget.py需要在同一文件夹中),一旦完成配置PyInstaller从OS shell命令行CD(签README文件)到pyinstaller目录并运行此命令:
python pyinstaller.py --onefile '/path/to/MyWidget.py'
寻找一个在pyinstaller文件夹叫进myWidget文件夹,里面dist文件夹是你的独立的Qt应用程序。