Python作為一個(gè)開(kāi)源的解釋型編程軟件,在教學(xué)、科研、實(shí)際項(xiàng)目中用得越來(lái)越多。Python易學(xué)易用,程序資源豐富,在編程解決一些科學(xué)計(jì)算問(wèn)題時(shí)比較實(shí)用,但是Python自帶的Tkinter包設(shè)計(jì)GUI程序的功能比較弱,無(wú)法設(shè)計(jì)專(zhuān)業(yè)的GUI應(yīng)用程序。 Qt C++類(lèi)庫(kù)是一套廣泛使用的跨平臺(tái)GUI設(shè)計(jì)類(lèi)庫(kù),PyQt5是Qt5 C++類(lèi)庫(kù)的Python綁定,使用PyQt5在Python里編程,可以將Python豐富的科學(xué)計(jì)算、圖形顯示等功能與PyQt5的GUI設(shè)計(jì)功能結(jié)合起來(lái),開(kāi)發(fā)出比較專(zhuān)業(yè)的Python GUI應(yīng)用程序,便于對(duì)研究成果進(jìn)行有效的集成與展示。 目前,介紹Python編程的書(shū)很多,但是專(zhuān)門(mén)介紹PyQt5 GUI編程的書(shū)很少。目前有這樣一本《Python Qt GUI與數(shù)據(jù)可視化編程》即將出版。推薦給有需要的你們。 本書(shū)主要內(nèi)容包括:
內(nèi)容路徑:本書(shū)介紹在Python中使用PyQt5、PyQtChart、Matplotlib等進(jìn)行GUI應(yīng)用程序設(shè)計(jì)和數(shù)據(jù)可視化編程的方法,全書(shū)的內(nèi)容分為三部分。 第一部分是PyQt5開(kāi)發(fā)基礎(chǔ),包括第1章和第2章。 第1章介紹Python、Qt、PyQt5的特點(diǎn)和安裝方法,在Windows中建立開(kāi)發(fā)環(huán)境。 第2章介紹使用PyQt5開(kāi)發(fā)GUI應(yīng)用程序的基本框架原理,包括GUI應(yīng)用程序的基本結(jié)構(gòu)、使用可視化設(shè)計(jì)UI窗體時(shí)開(kāi)發(fā)GUI程序的流程和框架、信號(hào)與槽的使用方法等。掌握了第2章的內(nèi)容就掌握了PyQt5開(kāi)發(fā)GUI應(yīng)用程序的框架性原理,再學(xué)習(xí)第二部分和第三部分就很容易了。 第二部分是GUI應(yīng)用程序設(shè)計(jì),從第3章至第11章。 這部分介紹GUI應(yīng)用程序設(shè)計(jì)中常用的一些功能模塊的編程使用方法,包括常用界面組件的使用、Model/View結(jié)構(gòu)、事件處理、對(duì)話(huà)框和多窗口設(shè)計(jì)、數(shù)據(jù)庫(kù)、繪圖、文件讀寫(xiě)和操作、多媒體、多語(yǔ)言界面和Qt樣式表定制界面等。 這部分的內(nèi)容根據(jù)PyQt5和Python各自的特點(diǎn)做了取舍,總體的原則就是對(duì)GUI程序設(shè)計(jì)中必需的,而Python中沒(méi)有或功能不強(qiáng)的模塊進(jìn)行介紹。例如,Python雖然有自帶的數(shù)據(jù)庫(kù)、多媒體、文件讀寫(xiě)功能模塊,但是功能不如PyQt5的相應(yīng)模塊,或不易與PyQt5的GUI程序的窗口界面結(jié)合使用,因此本書(shū)就介紹PyQt5的數(shù)據(jù)庫(kù)、多媒體、文件讀寫(xiě)功能模塊。而Python自帶的多線(xiàn)程編程功能已經(jīng)比較全,且不涉及用戶(hù)界面,因此本書(shū)就不介紹PyQt5的多線(xiàn)程編程功能。Python有很多功能強(qiáng)大的第三方網(wǎng)絡(luò)功能模塊,因此沒(méi)有必要介紹PyQt5的網(wǎng)絡(luò)編程功能。 第三部分是數(shù)據(jù)可視化編程,從第12章至第14章。 Chart和Data Visualization模塊是Qt C++類(lèi)庫(kù)的一部分,分別用于二維圖表繪制和三維數(shù)據(jù)可視化,但是PyQt5中沒(méi)有這兩個(gè)模塊,需要單獨(dú)安裝PyQtChart包和PyQtDataVisualization包。第 12 章介紹使用PyQtChart模塊繪制各種二維圖表的編程方法,第13章介紹使用PyQtDataVisualization模塊繪制三維柱狀圖、三維散點(diǎn)圖和三維曲面圖的編程方法。 Matplotlib是Python中應(yīng)用最廣泛的數(shù)據(jù)可視化模塊,但是一般介紹Matplotlib數(shù)據(jù)可視化的書(shū)很少詳細(xì)介紹將Matplotlib嵌入GUI窗口上的編程方法。第14章專(zhuān)門(mén)介紹Matplotlib與PyQt5結(jié)合,嵌入GUI程序中實(shí)現(xiàn)數(shù)據(jù)可視化的編程方法,這是在編寫(xiě)集成化的Python GUI應(yīng)用程序時(shí)經(jīng)常遇到的,是非常實(shí)用的功能。 本書(shū)學(xué)習(xí)路線(xiàn)
本書(shū)使用的編程語(yǔ)言是Python,但是本書(shū)并不會(huì)介紹Python語(yǔ)言基礎(chǔ),需要讀者對(duì)Python編程有一定的了解,特別是對(duì)Python的面向?qū)ο缶幊淘硪容^熟悉。如果讀者對(duì)Python不夠熟悉,需要參考專(zhuān)門(mén)介紹Python編程基礎(chǔ)的書(shū),學(xué)會(huì)Python后再來(lái)學(xué)習(xí)本書(shū)。 本書(shū)的內(nèi)容雖然用到Qt的IDE,即Qt Creator,但是并不需要編寫(xiě)任何C++語(yǔ)言程序,所以讀者無(wú)須具有C++語(yǔ)言基礎(chǔ)。當(dāng)然,如果讀者有C++語(yǔ)言基礎(chǔ),或者對(duì)Qt C++編程比較熟悉,對(duì)閱讀本書(shū)的內(nèi)容是非常有幫助的。 學(xué)習(xí)本書(shū)應(yīng)從第一部分開(kāi)始。第1章介紹本書(shū)用到的各個(gè)軟件及其安裝,搭建開(kāi)發(fā)環(huán)境。第2章是本書(shū)的基礎(chǔ)和重點(diǎn)內(nèi)容,介紹了PyQt5 GUI應(yīng)用程序的基本代碼框架、基于UI窗體可視化設(shè)計(jì)的GUI應(yīng)用程序的設(shè)計(jì)流程和工具軟件pyuic5的使用、UI與窗體業(yè)務(wù)邏輯分離設(shè)計(jì)的原理、Qt的核心技術(shù)信號(hào)與槽的使用方法、Qt Creator中管理和使用資源文件,以及通過(guò)工具軟件pyrcc5將資源文件轉(zhuǎn)換為Python程序的方法。第2章還創(chuàng)建了3個(gè)單窗口項(xiàng)目模板,本書(shū)的大部分示例都是基于這幾個(gè)項(xiàng)目模板創(chuàng)建的。 掌握了第2章的內(nèi)容就掌握了用PyQt5設(shè)計(jì)GUI程序的技術(shù)框架,剩下的就是PyQt5中用于GUI應(yīng)用程序設(shè)計(jì)的各種類(lèi)的使用了。 第二部分介紹PyQt5 GUI程序設(shè)計(jì)中各個(gè)技術(shù)模塊的使用方法,包括常用界面組件、Model/View結(jié)構(gòu)、事件處理、對(duì)話(huà)框與多窗口設(shè)計(jì)、數(shù)據(jù)庫(kù)、繪圖、文件、多媒體等,讀者可以根據(jù)自己的需要學(xué)習(xí)或查閱相應(yīng)章節(jié)。第11章有兩個(gè)新的技術(shù)點(diǎn)不在第2章介紹的技術(shù)框架內(nèi),分別是多語(yǔ)言界面設(shè)計(jì)方法和Qt樣式表定制界面方法。 第三部分介紹數(shù)據(jù)可視化設(shè)計(jì)方法。PyQtChart和PyQtDataVisualization是Qt C++類(lèi)庫(kù)相應(yīng)模塊的Python綁定,分別用于二維圖表和三維數(shù)據(jù)可視化設(shè)計(jì),其內(nèi)容的介紹比較全面。另外由于Matplotlib在Python數(shù)據(jù)可視化中應(yīng)用廣泛,第14章專(zhuān)門(mén)介紹將Matplotlib嵌入GUI窗體上實(shí)現(xiàn)交互式數(shù)據(jù)可視化的設(shè)計(jì)方法,包括主要的技術(shù)點(diǎn)和一些常用二維圖和三維圖的編程使用方法。 PyQtChart、PyQtDataVisualization與Matplotlib的某些功能是重合的,但它們各有千秋,讀者可根據(jù)自己的需要和熟悉的內(nèi)容選擇學(xué)習(xí)和使用。如果讀者熟悉Qt C++類(lèi)庫(kù)中的二維圖表和三維數(shù)據(jù)可視化模塊的使用,就參閱第12章和第13章;如果讀者熟悉Matplotlib的使用,就參閱第14章。 目 錄第一部分 PyQt5開(kāi)發(fā)基礎(chǔ)
第二部分 GUI應(yīng)用程序設(shè)計(jì)
第三部分 數(shù)據(jù)可視化
樣章試讀本書(shū)介紹如何在Python中使用PyQt5進(jìn)行圖形用戶(hù)界面(Graphical User Interface,GUI)應(yīng)用程序開(kāi)發(fā),使用的編程語(yǔ)言是Python,構(gòu)建開(kāi)發(fā)環(huán)境需要安裝的軟件有Python 3、Qt 5和PyQt5。 本章介紹各個(gè)軟件的功能特點(diǎn)、安裝和基本使用方法,以及構(gòu)建本書(shū)介紹內(nèi)容所需的開(kāi)發(fā)環(huán)境。本書(shū)所有程序都是在64位Windows 7平臺(tái)上開(kāi)發(fā)的,但由于Python和Qt都是跨平臺(tái)的,因此所介紹的內(nèi)容在Linux等平臺(tái)上也是適用的。 1.1 Python1.1.1 Python 簡(jiǎn)介 Python是由Guido van Rossum在1989年開(kāi)發(fā),然后在1991年初發(fā)布的。Python是一種跨平臺(tái)的解釋型語(yǔ)言,它功能強(qiáng)大,簡(jiǎn)單易學(xué),具有面向?qū)ο缶幊痰墓δ?。Python是完全開(kāi)源的軟件,具有開(kāi)放的特性,能很方便地將其他語(yǔ)言(尤其是C/C++)的類(lèi)庫(kù)封裝為Python的模塊來(lái)使用。 由于Python語(yǔ)言的特點(diǎn),以及其開(kāi)源和開(kāi)放的特性,吸引了編程社區(qū)為Python開(kāi)發(fā)了很多實(shí)用且功能強(qiáng)大的包(package),例如用于矩陣處理和線(xiàn)性代數(shù)計(jì)算的NumPy,用于科學(xué)計(jì)算的SciPy,用于數(shù)據(jù)分析的Pandas,用于數(shù)據(jù)可視化的Matplotlib等,這使得Python在科學(xué)計(jì)算、數(shù)據(jù)分析、數(shù)據(jù)可視化、神經(jīng)網(wǎng)絡(luò)、人工智能、Web編程等各方面得到了廣泛的應(yīng)用,逐漸成為一種主流的編程語(yǔ)言。 1.1.2 Python的下載與安裝 Python是一個(gè)完全開(kāi)源的軟件,從官網(wǎng)上可以下載最新版本的Python安裝文件。Python 3和Python 2是不兼容的,本書(shū)就不考慮Python 2了,直接下載最新的發(fā)布版本Python 3.7.0。 Python是跨平臺(tái)的,有Windows、Linux、macOS等各種平臺(tái)的安裝文件。本書(shū)的示例程序都是在64位的Windows 7平臺(tái)上開(kāi)發(fā)的,所以下載64位Windows平臺(tái)的離線(xiàn)安裝文件。Python的安裝過(guò)程與一般的Windows程序安裝過(guò)程一樣,在一個(gè)安裝向?qū)Ю锿瓿砂惭b過(guò)程。 安裝向?qū)У牡谝徊饺鐖D1-1所示。在此窗口里勾選“Add Python 3.7 to PATH”,會(huì)自動(dòng)將安裝后的Python的兩個(gè)文件夾路徑添加到Windows系統(tǒng)的環(huán)境變量PATH里,這樣就可以在Windows的cmd窗口里直接執(zhí)行Python的一些工具程序,如python.exe、pyuic5.exe等。 在圖1-1中點(diǎn)擊“Customize installation”進(jìn)行定制安裝,出現(xiàn)的窗口如圖1-2所示,在此窗口中勾選所有選項(xiàng)。其中,pip默認(rèn)是不勾選的,一定要勾選此選項(xiàng)。pip是Python的包管理工具程序,使用pip可以很方便地下載和安裝各種第三方的Python包,包括后面用到的PyQt5、PyQtChart等,都需要通過(guò)pip安裝。 圖1-1 Python安裝向?qū)У谝徊?圖1-2 Python安裝向?qū)У诙?/p> 繼續(xù)按照向?qū)崾就瓿砂惭b。這里設(shè)置Python安裝到“D:\Python37”目錄下,這個(gè)目錄下有Python的主程序文件python.exe和pythonw.exe。 文件夾“D:\Python37\Scripts”下存放的是Python的一些工具軟件,如pip.exe和pip3.exe。在安裝其他一些第三方模塊或工具軟件后,可執(zhí)行文件都安裝到此目錄下,例如安裝PyQt5之后,會(huì)在此目錄下增加3個(gè)可執(zhí)行文件。 路徑“D:\Python37”和“D:\Python37\Scripts”會(huì)被安裝程序自動(dòng)添加到Windows系統(tǒng)的PATH環(huán)境變量里,這兩個(gè)目錄下的文件就可以在Windows的cmd窗口里直接執(zhí)行。如果在安裝的第一步(圖1-1)中沒(méi)有勾選“Add Python 3.7 to PATH”,那么這兩個(gè)路徑不會(huì)自動(dòng)添加到PATH環(huán)境變量里,需要在安裝后手動(dòng)添加。 1.1.3 IDLE的基本使用 Python安裝后有一個(gè)交互式操作環(huán)境IDLE,其運(yùn)行時(shí)界面如圖1-3所示。在此交互式操作環(huán)境里,可以執(zhí)行Python的各種語(yǔ)句。 在圖1-3窗口的“File”菜單下,點(diǎn)擊“New File”,可以打開(kāi)一個(gè)文件編輯器,在這個(gè)編輯器里可以編寫(xiě)Python程序,然后保存為后綴為“.py”的文件。例如,在圖1-4的窗口中簡(jiǎn)單地輸入了兩行語(yǔ)句,然后保存為文件hello.py。 點(diǎn)擊圖1-4文件編輯器的菜單項(xiàng)“Run”→“Run Module”,或直接按快捷鍵F5執(zhí)行此程序,在交互式窗口里就會(huì)輸出運(yùn)行結(jié)果。 IDLE的功能比較簡(jiǎn)單,不像其他一些Python IDE(如Eric、PyCharm)功能那么強(qiáng)大,但是基本的程序編輯和調(diào)試功能是具備的。IDLE對(duì)于初學(xué)者來(lái)說(shuō)簡(jiǎn)單易用,編寫(xiě)和調(diào)試規(guī)模不大的程序是夠用的,因此本書(shū)就使用IDLE作為Python開(kāi)發(fā)環(huán)境。 IDLE的文件編輯器有以下一些常用的快捷鍵非常有用。
圖1-3 Python自帶的IDLE交互式操作環(huán)境 圖1-4 Python程序文件編輯器 因?yàn)镻ython源程序是采用縮進(jìn)確定代碼段的,排版時(shí)為減少縮進(jìn)空格數(shù)和縮進(jìn)層級(jí),本書(shū)設(shè)置TAB為3個(gè)空格(點(diǎn)擊IDLE的“Options”→“Configure IDLE”菜單項(xiàng)進(jìn)行設(shè)置),并且在程序中也基本不使用try...except和try...finally等語(yǔ)句塊。 IDLE也具有程序調(diào)試功能。在文件編輯器中打開(kāi)需要調(diào)試的源程序文件,通過(guò)鼠標(biāo)右鍵快捷菜單在當(dāng)前行設(shè)置或取消斷點(diǎn)。在IDLE交互環(huán)境中,點(diǎn)擊“Debug”→“Debugger”菜單項(xiàng),出現(xiàn)如圖1-5所示的調(diào)試控制窗口。按F5開(kāi)始運(yùn)行程序后,就進(jìn)入調(diào)試狀態(tài)。在調(diào)試狀態(tài)下,使用圖1-5窗口上的“Go”“Step”“Over”等按鈕進(jìn)行程序調(diào)試。程序調(diào)試的方法與一般IDE的程序調(diào)試方法類(lèi)似,這里就不詳細(xì)介紹了。 本書(shū)不對(duì)Python語(yǔ)言基礎(chǔ)做介紹,假定讀者已熟悉Python語(yǔ)言編程的基本方法,掌握了Python中類(lèi)的使用方法。如果讀者對(duì)Python的基本編程不熟悉,需要找一本專(zhuān)門(mén)介紹Python編程基礎(chǔ)的書(shū)學(xué)習(xí)后再來(lái)學(xué)習(xí)本書(shū)的內(nèi)容。 除了Python自帶的IDLE,還有許多其他用于Python編程的IDE,如PyCharm、Eric等。本書(shū)的示例程序都用IDLE編程和調(diào)試,如果讀者習(xí)慣于使用其他的IDE,也可以使用自己習(xí)慣的編程環(huán)境。因?yàn)镻ython是解釋型語(yǔ)言,無(wú)須編譯,所以無(wú)論使用哪個(gè)IDE都可以實(shí)現(xiàn)Python程序的編寫(xiě)和運(yùn)行。 1.1.4 安裝Python包 Python的一大特點(diǎn)就是有大量的包(package)可供使用,而且都是開(kāi)源的。PyPI(Python Package Index)網(wǎng)站就是Python程序資源的集散地,在這個(gè)網(wǎng)站上可以查找、下載、發(fā)布Python包。 在Windows的cmd窗口里使用pip3指令可以直接從PyPI網(wǎng)站下載包并安裝。例如,SIP是一個(gè)用于將C++庫(kù)轉(zhuǎn)換為Python擴(kuò)展模塊的工具軟件,這種擴(kuò)展模塊稱(chēng)為C++庫(kù)的Python綁定(binding)。要安裝SIP只需在Windows的cmd窗口里執(zhí)行如下的指令: pip3 install sip 這條指令中的pip3就是“D:\Python37\Scripts”目錄下的程序pip3.exe;install是指令參數(shù),表示安裝,相應(yīng)地,卸載用uninstall;sip是需要安裝的包的名稱(chēng)。 執(zhí)行這條指令時(shí),pip3會(huì)自動(dòng)鏈接到PyPI網(wǎng)站上,查找最新版本的SIP,如果找到就自動(dòng)下載并安裝。成功安裝后,在“D:\Python37\Lib\site-packages”目錄下會(huì)出現(xiàn)SIP相關(guān)的子目錄和文件,該目錄下存放的都是安裝的Python包。 如果要卸載已安裝的SIP,執(zhí)行下面的指令即可。 pip3 uninstall sip 如果直接鏈接國(guó)外的PyPI服務(wù)器速度比較慢,可以在pip3指令中指定使用鏡像服務(wù)器。例如,使用清華的鏡像服務(wù)器安裝SIP的指令是: pip3 install –i https://pypi.tuna./simple sip 1.2 Qt1.2.1 Qt 簡(jiǎn)介 Qt是一個(gè)跨平臺(tái)的應(yīng)用程序C++開(kāi)發(fā)類(lèi)庫(kù),支持Windows、Linux、macOS等各種桌面平臺(tái),也支持iOS、Android等移動(dòng)平臺(tái),還支持各種嵌入式系統(tǒng),是應(yīng)用非常廣泛的跨平臺(tái)C++開(kāi)發(fā)類(lèi)庫(kù)。 Qt最早是由挪威的Haavard Nord和Eirik Chambe-Eng在1991年開(kāi)始開(kāi)發(fā)的,在1994年發(fā)布,并成立了一家名為T(mén)rolltech的公司。Trolltech公司在2008年被諾基亞公司收購(gòu),2012年,Qt被Digia公司收購(gòu),2014年從Digia公司拆分出來(lái)成立了獨(dú)立的Qt公司,專(zhuān)門(mén)進(jìn)行Qt的開(kāi)發(fā)、維護(hù)和商業(yè)推廣。 Qt的許可類(lèi)型分為商業(yè)許可和開(kāi)源許可,開(kāi)源許可的Qt就已經(jīng)包含非常豐富的功能模塊,可用于Qt學(xué)習(xí)和一般的應(yīng)用程序開(kāi)發(fā)。 1.2.2 Qt 的下載與安裝 在Python中使用PyQt5編寫(xiě)程序可以只安裝PyQt5,而不必安裝Qt的開(kāi)發(fā)環(huán)境。但是為了使用Qt的IDE(即Qt Creator)的一些功能如UI窗體可視化設(shè)計(jì)、Qt類(lèi)庫(kù)幫助信息查找、資源文件管理等,安裝Qt是有必要的。 從Qt官網(wǎng)可以下載最新版本的Qt軟件。Qt分為商業(yè)版和社區(qū)版,社區(qū)版就是具有開(kāi)源許可協(xié)議的免費(fèi)版本。Qt的版本更新比較快,本書(shū)使用的是Qt 5.12.0,這是一個(gè)LTS(Long Term Supported)版本。 下載的Windows平臺(tái)的Qt離線(xiàn)安裝文件是一個(gè)可執(zhí)行文件,運(yùn)行文件就可以開(kāi)始安裝。安裝過(guò)程與一般的Windows應(yīng)用程序安裝過(guò)程一樣,按照向?qū)нM(jìn)行操作即可。 在設(shè)置安裝路徑時(shí),選擇安裝到“D:\Qt\Qt5.12.0”目錄下,當(dāng)然也可以安裝在其他路徑下。設(shè)置為這個(gè)路徑,是為了在后面需要講到Qt的路徑時(shí)使用此絕對(duì)路徑。 在安裝過(guò)程中會(huì)出現(xiàn)如圖 1-6 所示的安裝模塊選項(xiàng)設(shè)置頁(yè)面,在這個(gè)頁(yè)面里選擇需要安裝的模塊。“Qt 5.12.0”節(jié)點(diǎn)下面是Qt的功能模塊,包括用于不同編譯器和平臺(tái)的模塊,這些模塊如下。
“Tools”節(jié)點(diǎn)下面是一些工具軟件,這些軟件如下。
1.2.3 Qt的幾個(gè)工具軟件 安裝完成后,在Windows“開(kāi)始”菜單里建立的“Qt 5.12.0”程序組內(nèi)容如圖1-7所示。程序組中的一個(gè)主要程序是Qt Creator 4.8.0(Enterprise),它是用于開(kāi)發(fā)Qt程序的IDE,是Qt的主要工具軟件。 根據(jù)選擇安裝的編譯器模塊會(huì)建立相應(yīng)的幾個(gè)子分組,例如,在圖1-7中有兩個(gè)版本的編譯器模塊,即MinGW 7.3.0(64-bit)和MSVC 2015(64-bit),每個(gè)分組下面都有以下3個(gè)工具軟件。
1.2.4 Qt Creator的設(shè)置 本書(shū)對(duì)使用的Qt Creator做了一些設(shè)置:一是將界面語(yǔ)言設(shè)置為英語(yǔ),因?yàn)槌跏嫉臐h語(yǔ)界面中某些詞匯翻譯得并不恰當(dāng),使用英語(yǔ)界面會(huì)更準(zhǔn)確一些;二是設(shè)置文件命名規(guī)則,取消默認(rèn)的全小寫(xiě)命名文件規(guī)則。 啟動(dòng)Qt Creator后,點(diǎn)擊Qt Creator菜單欄的“Tools”→“Options…”菜單項(xiàng)打開(kāi)如圖1-8所示的選項(xiàng)設(shè)置對(duì)話(huà)框。 界面語(yǔ)言設(shè)置:點(diǎn)擊對(duì)話(huà)框左側(cè)Environment分組后,在Interface頁(yè)面將界面語(yǔ)言設(shè)置為English,設(shè)置主題為Flat Light。更改語(yǔ)言和主題后需要重新啟動(dòng)Qt Creator才會(huì)生效。 文件命名規(guī)則設(shè)置:在圖1-8所示的C++分組的File Naming頁(yè),取消“Lower case file names”選項(xiàng)。默認(rèn)是勾選此項(xiàng)的,即自動(dòng)命名的文件名采用全小寫(xiě)字母。 在本書(shū)里用Qt Creator只需要進(jìn)行窗體可視化設(shè)計(jì)、生成槽函數(shù)代碼框架、查閱Qt幫助文檔,而不需要使用Qt Creator編寫(xiě)任何C++程序。Qt Creator的具體使用在下一章詳細(xì)介紹。 圖1-8 Qt Creator的選項(xiàng)設(shè)置對(duì)話(huà)框 1.3 PyQt51.3.1 PyQt5簡(jiǎn)介 Python語(yǔ)言功能很強(qiáng),但是Python自帶的GUI開(kāi)發(fā)庫(kù)Tkinter功能很弱,難以開(kāi)發(fā)出專(zhuān)業(yè)的GUI。好在Python語(yǔ)言的開(kāi)放性,很容易將其他語(yǔ)言(特別是C/C++)的類(lèi)庫(kù)封裝為Python綁定,而Qt是非常優(yōu)秀的C++ GUI類(lèi)庫(kù),所以就有了PyQt。 PyQt是Qt C++類(lèi)庫(kù)的Python綁定,PyQt5對(duì)應(yīng)于Qt5類(lèi)庫(kù)。Qt推出新的版本后,PyQt就會(huì)推出跟進(jìn)的版本,例如針對(duì)Qt 5.12.0就有PyQt 5.12。使用PyQt5可以充分利用Qt的應(yīng)用程序開(kāi)發(fā)框架和功能豐富的類(lèi)設(shè)計(jì)GUI程序。PyQt主要有以下一些優(yōu)點(diǎn)。
PyQt5是Riverbank公司的產(chǎn)品,分為開(kāi)源版本和商業(yè)版本,開(kāi)源版本就包含全部的功能。Riverbank公司不僅開(kāi)發(fā)了PyQt5,還開(kāi)發(fā)了PyQtChart、PyQtDataVisualization、PyQt3D、SIP等軟件包。可以在Riverbank公司網(wǎng)站上下載這些軟件包的源代碼,在PyPI網(wǎng)站上也可以找到這些軟件包,所以可以使用pip3指令直接安裝。 1.3.2 PyQt5安裝 在PyPI網(wǎng)站上可以找到最新版本的PyQt5,直接用下面的指令安裝PyQt5。 pip3 install PyQt5 直接連接PyPI服務(wù)器可能速度比較慢,可以使用鏡像網(wǎng)站安裝,例如使用清華大學(xué)鏡像網(wǎng)站的指令是: pip3 install –i https://pypi.tuna./simple PyQt5 這條指令正確執(zhí)行后就會(huì)安裝PyQt5,并且會(huì)自動(dòng)安裝依賴(lài)的包SIP。SIP是一個(gè)將C/C++庫(kù)轉(zhuǎn)換為Python綁定的工具,SIP本來(lái)是為了開(kāi)發(fā)PyQt而開(kāi)發(fā)的,現(xiàn)在也可以用于將任何C/C++庫(kù)轉(zhuǎn)換為Python綁定。 安裝PyQt5之后,在“D:\Python37\Scripts”目錄下增加了pylupdate5.exe、pyrcc5.exe和pyuic5.exe這3個(gè)用于PyQt5的可執(zhí)行程序,如圖1-9所示。這3個(gè)可執(zhí)行程序的作用分別如下。
圖1-9 安裝PyQt5之后的Scripts子目錄下的可執(zhí)行文件 路徑“D:\Python37\Scripts”被添加到了Windows的PATH環(huán)境變量里,所以這些程序在cmd窗口里可以直接運(yùn)行。 若想要卸載PyQt5,就執(zhí)行下面的指令: pip3 uninstall PyQt5 1.3.3 在IDLE中開(kāi)啟對(duì)PyQt5的代碼提示功能 在安裝了PyQt5之后,可以在IDLE中開(kāi)啟代碼提示功能,并且添加PyQt5的所有模塊,這樣在編寫(xiě)程序時(shí),IDLE就具有一定的代碼提示功能。 首先編輯目錄“D:\Python37\Lib\idlelib”下的文件config-extensions.def,修改[AutoComplete]部分: [AutoComplete]enable=Truepopupwait= 20 這表示開(kāi)啟自動(dòng)提示功能,提示開(kāi)啟的延遲時(shí)間是20毫秒。 然后再編輯同一目錄下的文件autocomplete.py,在文件的import部分導(dǎo)入PyQt5的各個(gè)模塊: import osimport stringimport sys##添加需要自動(dòng)提示的模塊import PyQt5.QtWidgetsimport PyQt5.QtCoreimport PyQt5.QtGuiimport PyQt5.QtSqlimport PyQt5.QtMultimediaimport PyQt5.QtMultimediaWidgetsimport PyQt5.QtChartimport PyQt5.QtDataVisualization 這樣就將 PyQt5 的各個(gè)常用模塊以及第 12 章和第 13 章要單獨(dú)安裝的PyQtChart和PyQtDataVisualization加入了可提示模塊列表。 開(kāi)啟和設(shè)置自動(dòng)提示功能后,在IDLE中使用PyQt5各模塊中的類(lèi)時(shí)就會(huì)有代碼提示功能。但是IDLE的代碼提示功能比較弱,不如PyCharm、Eric等專(zhuān)業(yè)IDE軟件。 |
|
來(lái)自: 星光閃亮圖書(shū)館 > 《PyQt5學(xué)習(xí)》