- 論壇徽章:
- 0
|
pyqt4開發(fā)步驟
用pyqt4來開發(fā)圖形界面程序的步驟如下
1:用Qt Designer做好圖形界面并保存為x.ui文件
2:用pyqt自帶的命令pyuic4 edytor.ui > edytor.py。 這樣就得到了一個(gè)Ui_notepad類(假定窗口名為notepad)
代碼大致如下
from PyQt4 import QtCore, QtGui
class Ui_notepad(object):
def setupUi(self, notepad):
notepad.setObjectName("notepad"
notepad.resize(548, 483)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("sakila.png" ,
QtGui.QIcon.Normal, QtGui.QIcon.Off)
notepad.setWindowIcon(icon)
self.button_open = QtGui.QPushButton(notepad)
self.button_open.setGeometry(QtCore.QRect(20, 20, 251, 61))
self.button_open.setObjectName("button_open"
self.pushButton_2 = QtGui.QPushButton(notepad)
self.pushButton_2.setGeometry(QtCore.QRect(280, 20, 251, 61))
self.pushButton_2.setObjectName("pushButton_2"
self.editor_window = QtGui.QTextEdit(notepad)
self.editor_window.setGeometry(QtCore.QRect(20, 90, 511, 371))
self.editor_window.setObjectName("editor_window"
self.retranslateUi(notepad)
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL("clicked()" ,
notepad.close)
QtCore.QMetaObject.connectSlotsByName(notepad)
def retranslateUi(self, notepad):
notepad.setWindowTitle(QtGui.QApplication.translate("notepad", "記事本", None, QtGui.QApplication.UnicodeUTF )
self.button_open.setText(QtGui.QApplication.translate("notepad", "打開", None, QtGui.QApplication.UnicodeUTF )
self.pushButton_2.setText(QtGui.QApplication.translate("notepad", "關(guān)閉", None, QtGui.QApplication.UnicodeUTF )
3:創(chuàng)建一個(gè)start.py文件 做主文件
import sys
from PyQt4 import QtCore, QtGui
from edytor import Ui_notepad #加載生成的圖形界面類
class StartQt4(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_notepad()#實(shí)例化這個(gè)類
self.ui.setupUi(self)#調(diào)用setupUi方法
QtCore.QObject.connect(self.ui.button_open,QtCore.SIGNAL("clicked()" , self.file_dialog)
#綁定信號(hào)/槽 也就是將電機(jī)button_open這個(gè)按鈕的事件,綁定到file_dialog這個(gè)函數(shù)上
def file_dialog(self):
self.ui.editor_window.setText('aaaaaaaaaa')
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = StartQt4()
myapp.show()
sys.exit(app.exec_())
4:發(fā)布,新建一個(gè)setup.py文件
setup.py如下:
# setup.py
from distutils.core import setup
import py2exe
setup(windows=["loadMain.py"])
5:發(fā)布
python setup.py py2exe -p PyQt4,sip
注意:在setup.py中除了導(dǎo)入必需的模塊以外,只有一條語句。
distutils.core.setup(windows=['MessageBox.py'])
方括號(hào)中就是要編譯的腳本名,前邊的windows表示將其編譯成GUI程序。如果要編譯命令行界面的可執(zhí)行文件,只要將windows改為console
py2exe會(huì)在當(dāng)前目錄下生成兩個(gè)目錄 build和dist
build里是一些py2exe運(yùn)行時(shí)產(chǎn)生的中間文件,dist里有最終的可執(zhí)行文件
library.zip
w9xpopen.exe
python23.dll
hello.exe
不過記得如果要發(fā)布到別的機(jī)器上時(shí),library.zip、 w9xpopen.exe、python23.dll這幾個(gè)文件是必須要和hello.exe在一起的。 |
|