獲取更多文章和更新,請關(guān)注我的個(gè)人主頁:https://leiting6.cn
寫在前面
關(guān)于PyQt入門的教程網(wǎng)上并不缺少,說實(shí)話,真稀缺的還是比較進(jìn)階的教程。不過我自己也是自學(xué)Python到現(xiàn)在,并且使用PyQt寫了幾個(gè)小工具,感覺挺不錯(cuò),所以從上手入門開始寫。我的教程里面可能并不會非常系統(tǒng)和全面,只是覺得作為新手學(xué)習(xí)一門新的語言和工具,成就感是一件非常重要的事情!快速入門,從照貓畫虎到舉一反三再到自己獨(dú)立編寫出工具,是最能激發(fā)熱情的。在此過程中,必定會學(xué)會查閱官方文檔和網(wǎng)絡(luò)文章來充實(shí)細(xì)枝末節(jié)的知識,認(rèn)知體系也就自然系統(tǒng)、全面了。
關(guān)于QTCreator
QtCreator是跨平臺的QT IDE,提供圖形化的UI繪制工具。目前QTCreator內(nèi)部只支持C++語言編寫后臺邏輯,但是既然QT已經(jīng)為Pyhton做了比較全面的移植,所以后面肯定會說到怎么能利用Python來給圖形界面編寫后臺功能。
下載QTCreator
首先,你的系統(tǒng)中必須準(zhǔn)備好Python環(huán)境,并且安裝對應(yīng)版本的PyQt5庫,再然后安裝對應(yīng)版本的QtCreator。
點(diǎn)擊跳轉(zhuǎn)到Python官方下載地址
點(diǎn)擊跳轉(zhuǎn)到各個(gè)版本PyQt5安裝包下載地址
點(diǎn)擊跳轉(zhuǎn)到QTCreator官方下載地址
QT官方提供各個(gè)版本的QTCreator下載,到目前為止最新版本為4.5.2,下載的時(shí)候注意選擇適合自己操作系統(tǒng)和Python版本的裝包。比如我使用的是Win10 64bit系統(tǒng),安裝的是Python3.4 32bit,所以我下載的是qt-creator-opensource-windows-x86-4.5.2.exe。
之所以還在用Python3.4是因?yàn)閜y2exe支持的比較好,可以比較完美的將Python工程轉(zhuǎn)換為exe可執(zhí)行文件。
使用QTCreator
認(rèn)識QtCreator
安裝QTCreator之后打開軟件,我們會發(fā)現(xiàn)這個(gè)IDE的界面包含的組件并沒有很多。這是因?yàn)镼TCreator不是完整的QT IDE,它更關(guān)注于快速地完成項(xiàng)目設(shè)計(jì)和開發(fā)。
QTCreator的主界面內(nèi)容我就不一一介紹了,這里從創(chuàng)建工程開始講。
文件 -> 新建文件或者項(xiàng)目 -> QT ,然后我們可以看到如下界面:

這里不要著急選擇Python,因?yàn)槟遣⒉皇俏覀兯枰?。選擇QT,然后選擇Qt設(shè)計(jì)師界面類。我們需要創(chuàng)建一個(gè)類。面向?qū)ο笳Z言中,類是個(gè)很重要的概念,C++中會用到,Python中同樣會用到。

這一步我們可以選擇:
創(chuàng)建Dialog(對話框),包括帶按鈕、不帶按鈕的
創(chuàng)建Main Window(主窗口)
創(chuàng)建Widget(小窗口)
除此之外,還可以創(chuàng)建各種窗口部件類;至于各個(gè)部件是什么,不著急,等我們進(jìn)了設(shè)計(jì)界面自然能看到。開始我們先選擇創(chuàng)建一個(gè)Main Window吧,在Main Window里面有需要的話可以放置各種部件,以及創(chuàng)建新的Wighet。
一直點(diǎn)擊下一步,選擇存儲位置,然后點(diǎn)擊完成,進(jìn)入設(shè)計(jì)界面。

稍微研究一下就可以發(fā)現(xiàn):
QtCreator軟件最中間就是我們創(chuàng)建的Main Window的UI界面,起初是空白的,只有一個(gè)外框可以調(diào)整大?。徽{(diào)整大小的時(shí)候觀察對象屬性中的geometry屬性中的分辨率大小也會隨之改變,這個(gè)分辨率很明顯就是Main Window的分辨率了;在對象屬性中,我們可以更改這個(gè)主窗口的名稱(objectName屬性),這里保持默認(rèn)的MainWindow;還可以改變主窗口的標(biāo)題(windowTitle),我的想法是先做一個(gè)最簡單的加法器,所以改為“加法器”;
左側(cè)工具欄中有很多控件,很多也是我們平時(shí)使用軟件過程中經(jīng)常見到的,比如按鈕(pushButton),下拉框(comboBox),單行文本框(lineEdit),多行文本框(textEdit)等等;不知道做什么的可以通過搜索引擎來尋找一下信息,更直白的方法是拖入到Main Window中看看具體是什么樣子。
拖入控件,設(shè)置屬性
一個(gè)簡單的加法器,包含一個(gè)程序界面標(biāo)題、2個(gè)輸入數(shù)字的單行文本框、一個(gè)加號、一個(gè)等于號、和一個(gè)顯示結(jié)果的單行文本框,而且我想要顯示結(jié)果的文本框是只讀的。大概思索一下會是怎樣一個(gè)布局,這時(shí)候就可以動手來改變一下主窗口的形狀并拖放控件了。
具體怎么操作就不贅述了,我設(shè)計(jì)完成之后是下面這個(gè)樣子:

下面是所有用到的組件的屬性:
| 組件 | objectName屬性 | text屬性 | 其他屬性 |
|---|---|---|---|
| mainWindow | MainWindow | --- | --- |
| label | label_MainTitle | "簡易加法器" | alignment->水平的->alignHCenter |
| lineEdit | lineEdit_Adder1 | --- | --- |
| label | label_plus | "+" | alignment->水平的->alignHCenter |
| lineEdit | lineEdit_Adder2 | --- | --- |
| label | label_equals | "=" | alignment->水平的->alignHCenter |
| lineEdit | lineEdit_sum | --- | readOnly |
| pushButton | pushButton_calc | "計(jì)算" | --- |
表格中,組件都是從工具欄中拖拽進(jìn)來的;objectName是這個(gè)組件的名字,只所以要起名字,是不想組件多了之后都叫l(wèi)abel1、label2、label3,導(dǎo)致難以分辨,這個(gè)名字是我們后面寫QT后臺邏輯必須用到的;text屬性決定了標(biāo)簽、按鈕顯示什么內(nèi)容;當(dāng)然還有些其他的屬性可以實(shí)現(xiàn)其他的功能和特性。
怎么布局好看、實(shí)用,還是需要自己摸索,當(dāng)然QtCreator本身也是有各種layout方式可以自動幫你排版的,具體的可以點(diǎn)擊左側(cè)工具欄中的layout嘗試一下。到此利用QtCreator進(jìn)行一個(gè)簡單程序的UI設(shè)計(jì)就完成了,記得保存。進(jìn)入創(chuàng)建工程時(shí)選擇的文件夾,可以發(fā)現(xiàn)一個(gè).ui文件。