Qt Designer でフォームのモックアップを作成しました。フォームを (exe?) ファイルとして保存して、コンピューターで実行できるようにしたいと考えています。
「Python to Exe」を使用しますか (使用する場合、どのように)? プログラミングについてはまだよくわかりません。
Qt Designer はファイルを .ui 拡張子で保存します。
Qt Designer でフォームのモックアップを作成しました。フォームを (exe?) ファイルとして保存して、コンピューターで実行できるようにしたいと考えています。
「Python to Exe」を使用しますか (使用する場合、どのように)? プログラミングについてはまだよくわかりません。
Qt Designer はファイルを .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>
OS シェル コマンドラインから次のコマンドを実行してpyuic4を使用し、 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の構成が完了したら(README ファイルをチェックアウトします)、OS シェル コマンドライン CD からpyinstallerディレクトリに移動します。次のコマンドを実行します。
python pyinstaller.py --onefile '/path/to/MyWidget.py'
pyinstallerフォルダーでMyWidgetというフォルダーを探します。distフォルダー内には、スタンドアロンの Qt アプリがあります。