官方文檔:http://zetcode.com/gui/pyqt4/ 中文文檔:http://www.qaulau.com/books/PyQt4_Tutorial/index.html 先記錄簡單的,以下代碼可顯示一個基本的window: #!/usr/bin/python # -*- codin
官方文檔:http://zetcode.com/gui/pyqt4/
中文文檔:http://www.qaulau.com/books/PyQt4_Tutorial/index.html
先記錄簡單的,以下代碼可顯示一個基本的window:
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui def main(): app = QtGui.QApplication(sys.argv) w = QtGui.QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
from PyQt4 import QtGui,基本的GUI組件都存放在QtGui這個模塊
app = QtGui.QApplication(sys.argv),每個Pyqt的程式都必須創建一個application對象,application在 QtGui 模塊中,sys.argv 參數是命令行中的一組參數。
w = QtGui.QWidget(),創建視窗對象,QWidget視窗組件是PyQt4中所有用戶界面對象的基類,這裡直接使用QWidget預設的構造。
app.exec_()其實就是QApplication的方法,原來這個exec_()方法的作用是“進入程式的主迴圈直到exit()被調用”,如果沒有這個方法,運行的時候視窗會閃退,所以show是有發揮作用的,但沒有使用exec_(),所以沒有進入程式的主迴圈就直接結束了。於是修改代碼:
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui def main(): app = QtGui.QApplication(sys.argv) w = QtGui.QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() app.exec_() if __name__ == '__main__': main()
不用sys.exit(app.exec_()),只使用app.exec_(),程式一樣可以正常運行,但是關閉視窗後進程卻不會退出,嘗試print輸出app.exec_()的結果,返回0,於是再做修改:
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui def main(): app = QtGui.QApplication(sys.argv) w = QtGui.QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() app.exec_() sys.exit(0) if __name__ == '__main__': main()
這樣的話,運行時打開視窗也正常,退出時進程也可以結束了。所以才可以這麼用sys.exit(app.exec_())。