來創(chuàng)建第一個(gè) PyQt 應(yīng)用吧十气!本文由Cescfangs 譯自ZetCode pyqt5系列教程 并作適當(dāng)修改。
之前用C++做過Qt的應(yīng)用春霍,用過一次就喜歡上了Qt砸西,但對(duì)于C++本身并不是很喜歡(當(dāng)時(shí)本寶寶還年輕??),可能是因?yàn)镃++確實(shí)很難址儒,在學(xué)習(xí)Python之后芹枷,對(duì)于PyQt開發(fā)更加感興趣。話不多說莲趣,第一篇介紹如何創(chuàng)建一個(gè)簡單的窗口杖狼。先上源代碼:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('First PyQt5')
w.show()
sys.exit(app.exec_())
代碼解析:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
先導(dǎo)入所需要的模塊,包括sys
,PyQt5.QtWidgets
的QApplication
和QWidget
模塊妖爷。
app = QApplication(sys.argv)
每一個(gè)PyQt5項(xiàng)目都需要?jiǎng)?chuàng)建一個(gè)QApplication
對(duì)象蝶涩。sys.argv
則提供了命令行的一些參數(shù),這樣Python
腳本就能從Shell
運(yùn)行絮识,這是我們控制腳本開始運(yùn)行的方式绿聘。
w = QWidget()
QWidget
是所有界面的基類,這里采用默認(rèn)的構(gòu)造函數(shù)(無父對(duì)象次舌,沒有父對(duì)象的widget
也就是window
)熄攘。
w.resize(250, 150)
用resize
函數(shù)重設(shè)了窗口的大小為250px寬,150px高彼念。
w.move(300, 300)
move
函數(shù)把窗口移動(dòng)到了x=300,y=300d的坐標(biāo)位置挪圾。
w.setWindowTitle('Simple')
設(shè)置了窗口的標(biāo)題,會(huì)在窗口的標(biāo)題欄中央顯示逐沙。
w.show()
show
函數(shù)讓Simple這個(gè)窗口在屏幕中顯示出來哲思,這個(gè)窗口是先在內(nèi)存中產(chǎn)生,然后再顯示在屏幕中的吩案。
sys.exit(app.exec_())
在開頭我們?cè)O(shè)置了這個(gè)應(yīng)用的主函數(shù)棚赔,事件由此開始產(chǎn)生,主函數(shù)從窗口系統(tǒng)接受事件并傳遞給widget應(yīng)用,而當(dāng)我們使用exit()
或者關(guān)閉了widget時(shí)靠益,主函數(shù)就終止丧肴。sys.exit()
確保干凈利落不留痕跡地退出。
注意到這里的代碼exec_()
,exec后面還有個(gè)'_'胧后,這是因?yàn)?code>exec是Python
的關(guān)鍵字芋浮,為了避免沖突用了一個(gè)下短橫。最后可以看到一個(gè)簡單的窗口界面:
需要說明的是壳快,Qt自帶有QtDesigner設(shè)計(jì)交互界面途样,相比手寫界面代碼是一種更直觀的方式,在以后的學(xué)習(xí)筆記里也會(huì)介紹界面與代碼分開的方法濒憋,但是作為初學(xué),手寫一些簡單的界面是有助于理解Qt的陶夜。