關(guān)于我們
書單推薦
新書推薦
|
PyQt5快速開發(fā)與實(shí)戰(zhàn)
本書既是介紹PyQt5的快速入門書籍,也是介紹PyQt5實(shí)戰(zhàn)應(yīng)用的書籍。PyQt5是對(duì)Qt所有類的Python封裝,即可以利用Qt的強(qiáng)大功能,也可以利用Python豐富的生態(tài),同時(shí)能夠結(jié)合Python簡(jiǎn)潔的語(yǔ)法進(jìn)行操作,其結(jié)果就是使用PyQt5可以高效簡(jiǎn)單地開發(fā)出自己想要的程序。本書內(nèi)容豐富,對(duì)PyQt5基礎(chǔ)知識(shí)的介紹比較全面,同時(shí)對(duì)新手使用PyQt5的一些重點(diǎn)難點(diǎn)都有專門的章節(jié)進(jìn)行針對(duì)性分析,還重點(diǎn)介紹了如何把Python的一些重量級(jí)模塊(Pandas、Matplotlib和Plotly)嵌入到PyQt5中,從而極大地節(jié)約開發(fā)時(shí)間。*后,本書會(huì)給出一些綜合性較強(qiáng)的實(shí)戰(zhàn)案例,幫助讀者快速掌握PyQt5的實(shí)戰(zhàn)應(yīng)用?偠灾,本書旨在幫助讀者以*短的時(shí)間掌握PyQt5的基礎(chǔ)知識(shí)并能夠?qū)崙?zhàn)應(yīng)用,希望本書對(duì)有Python程序開發(fā)需求的讀者有幫助。
《PyQt5快速開發(fā)與實(shí)戰(zhàn)》是介紹PyQt 5理論與實(shí)戰(zhàn)的前沿書籍,即系統(tǒng)化地介紹Qt的基礎(chǔ)知識(shí),又兼顧Python的各種強(qiáng)大模塊,同時(shí)包含豐富的項(xiàng)目實(shí)戰(zhàn)。旨在幫助讀者快速掌握PyQt 5的應(yīng)用知識(shí),是Python程序開發(fā)的利器 前 言 Python可以說是世界上最廣泛、最簡(jiǎn)單的編程語(yǔ)言之一,Qt可以說是世界上最好的程序開發(fā)庫(kù)之一。Python與Qt結(jié)合的產(chǎn)物就是PyQt,因此,PyQt就成了Python中程序開發(fā)最棒的庫(kù)之一(當(dāng)然,筆者認(rèn)為它在Python程序開發(fā)中就是最棒的)。由于PyQt是Python與Qt的結(jié)合,所以它既可以利用Python強(qiáng)大而又簡(jiǎn)潔的語(yǔ)法,又不會(huì)丟失Qt強(qiáng)大的功能。從Python的角度來說,凡是Python涉及的所有簡(jiǎn)潔、易用性的語(yǔ)法,PyQt都可以使用;凡是Python涉及的所有開源模塊,PyQt也都可以使用。從Qt的角度來說,由于PyQt完成了對(duì)Qt的所有類的封裝,因此,從理論上說,使用Qt能開發(fā)出來的東西,使用PyQt也可以開發(fā)出來,因此,PyQt可以利用Qt強(qiáng)大的功能。由于充分利用了雙方的優(yōu)點(diǎn),所以PyQt在開發(fā)程序的過程中會(huì)帶來一些意想不到的收獲,利用Python的簡(jiǎn)潔語(yǔ)法與強(qiáng)大而又豐富的生態(tài)圈,有些程序邏輯在Qt中實(shí)現(xiàn)會(huì)比較復(fù)雜,而在PyQt中卻很簡(jiǎn)單,這才是PyQt最大的魅力之處。 近年來PyQt發(fā)展很快,從1998年最初的PyQt 0.1,到PyQt 1、PyQt 2、PyQt 3、PyQt 4以及最新的PyQt 5.9(截至2017年8月9日),并且實(shí)現(xiàn)了PyQt與Qt的同步更新。有一點(diǎn)非常遺憾的是,PyQt 5與PyQt 4并不兼容,PyQt 4的代碼無法在PyQt 5中運(yùn)行。PyQt 5的誕生時(shí)間是2013年4月,至今,PyQt 5經(jīng)過了快速發(fā)展,現(xiàn)在已經(jīng)非常成熟,并且Qt開發(fā)團(tuán)隊(duì)已經(jīng)明確宣布從2015年開始就放棄了對(duì)Qt 4(對(duì)應(yīng)PyQt 4)的支持,因此,對(duì)于想要學(xué)習(xí)PyQt的朋友來說,一開始就學(xué)習(xí)PyQt 5是一個(gè)最好的選擇。 然而,非常遺憾的是,市面上并沒有一本真正指導(dǎo)新手學(xué)習(xí)PyQt 5的教材,網(wǎng)絡(luò)上針對(duì)PyQt 5的學(xué)習(xí)案例的知識(shí)結(jié)構(gòu)也都非常零碎,無法形成一個(gè)學(xué)習(xí)PyQt 5的系統(tǒng)化框架。因此,對(duì)于新手來說,想要快速接受PyQt 5系統(tǒng)性的訓(xùn)練是一件非常困難的事情,筆者最初學(xué)習(xí)PyQt 5的時(shí)候也吃盡了苦頭,查閱了PyQt 5與Qt 5的大量官方文獻(xiàn)資料,并結(jié)合幾年的實(shí)戰(zhàn)應(yīng)用之后,才可以說有一些水平。 編程是一個(gè)熟能生巧的活兒,目前PyQt 5的開發(fā)技術(shù)算是掌握一些了,但是如果未來不使用這項(xiàng)技術(shù),那么再過幾年說不定就完全忘記PyQt 5是如何使用的了,如果是這樣的話就會(huì)給自己留下一些遺憾。考慮到現(xiàn)在個(gè)人還有一些額外的時(shí)間與精力,考慮到目前市面上還沒有一本關(guān)于PyQt 5使用的教材,于是本書應(yīng)運(yùn)而生。 寫書是一項(xiàng)神圣而又艱辛的工作,在本書的創(chuàng)作期間,為了讓本書包含更多的內(nèi)容,同時(shí)又讓其變得更容易理解,我和搭檔孫洋洋查閱了大量的PyQt 5官方文獻(xiàn)資料,花費(fèi)了很大的時(shí)間和精力在其中。本書得以順利出版,是無數(shù)個(gè)日日夜夜調(diào)試和寫作的成果。寫作本書時(shí)總會(huì)遇到一些復(fù)雜的PyQt 5技術(shù)問題,我和搭檔孫洋洋常常連續(xù)幾天熬夜討論,在每一個(gè)細(xì)節(jié)上反復(fù)推敲,每當(dāng)攻克技術(shù)難點(diǎn)的時(shí)候,我們都感到無比快樂。我要特別感謝搭檔孫洋洋,沒有你的堅(jiān)持和鼓勵(lì),就不會(huì)寫出這么精彩的書籍,感謝你那較真的性格,謝謝你。 經(jīng)過近一年的不懈付出,這本介紹PyQt 5的書終于出版了,希望這本書可以幫助更多的朋友掌握PyQt 5技術(shù),少走些技術(shù)彎路。同時(shí)這本書能夠按時(shí)出版,我感到無比欣慰,無論近一年吃了多少苦、犧牲了多少時(shí)間都是值得的。 本書結(jié)構(gòu) 本書共有11章,基本包含了筆者在使用PyQt的過程中遇到的絕大多數(shù)技術(shù)及一些經(jīng)典的應(yīng)用。書中有些章節(jié)是具有獨(dú)立性的,讀者可以針對(duì)自己的實(shí)際情況選擇閱讀。 第1章介紹PyQt的入門知識(shí),講述PyQt的安裝配置,以及Eric 6這個(gè)IDE的簡(jiǎn)單使用方法。已經(jīng)有一定PyQt基礎(chǔ)的朋友可以略去這一章。 第2章簡(jiǎn)單介紹Python的基本語(yǔ)法。本章內(nèi)容針對(duì)一些沒有接觸過Python的讀者,已經(jīng)有一些Python基礎(chǔ)的朋友可以略去這一章。 第3章介紹Qt Designer的使用方法。Qt Designer是一個(gè)PyQt的可視化界面編輯程序,它的作用是幫助用戶快速開發(fā)出界面文件,我們可以通過其他方式把界面文件轉(zhuǎn)換成Python代碼文件。對(duì)于不懂太多PyQt知識(shí)的讀者來說,本章內(nèi)容可以讓你快速入門;同時(shí),本章也是讓你的PyQt技術(shù)快速進(jìn)步的最重要章節(jié)。 第4章介紹PyQt 5的基本窗口控件的使用方法。如果讀者的時(shí)間并不充裕,只對(duì)部分控件感興趣,則可以選擇相應(yīng)的小節(jié)閱讀。 第5章介紹PyQt 5的高級(jí)界面控件的使用方法。如果讀者對(duì)PyQt的表格、樹、容器(多窗口控件)、多線程等感興趣,則可以選擇相應(yīng)的小節(jié)閱讀。 第6章介紹PyQt 5的布局管理(在第3章中闡述Qt Designer的使用方法時(shí)已經(jīng)做了介紹,當(dāng)時(shí)是通過Qt Designer這個(gè)代碼生成器進(jìn)行介紹的,而這里通過手工輸入代碼的方法進(jìn)行介紹)。由于布局管理非常重要,值得我們用單獨(dú)一章來介紹。如果讀者對(duì)用純代碼實(shí)現(xiàn)布局管理器感興趣,則可以參考這一章;如果對(duì)用代碼生成器Qt Designer實(shí)現(xiàn)布局管理器感興趣,則可以忽略這個(gè)章節(jié)。實(shí)際上,這兩種方法并沒有本質(zhì)的區(qū)別。 第7章介紹PyQt 5信號(hào)與槽的應(yīng)用。信號(hào)與槽是PyQt的核心,想要掌握PyQt的高級(jí)玩法,則可以仔細(xì)閱讀這個(gè)章節(jié)。 第8章介紹PyQt 5的圖形和特效。本章內(nèi)容適用于有PyQt繪圖、美化窗口需求的讀者。 第9章介紹PyQt 5的擴(kuò)展應(yīng)用。如果你想知道如何把Python的一些非常流行的模塊如PyInstaller、Pandas、Matplotlib、PyQtGraph、Plotly等與PyQt結(jié)合,則可以選擇性閱讀這個(gè)章節(jié)。 第10章通過幾個(gè)例子介紹PyQt 5的實(shí)戰(zhàn)應(yīng)用。想要了解一些簡(jiǎn)單的程序是如何開發(fā)的朋友,則可以選擇性閱讀這個(gè)章節(jié)。 第11章介紹PyQt 5在金融領(lǐng)域的應(yīng)用,這是本書作者孫洋洋在金融公司工作期間積累的一些實(shí)戰(zhàn)性較高的案例,展示如何將PyQt 5應(yīng)用到投資研究系統(tǒng)、量化投資以及金融工具開發(fā)中,讀者可以根據(jù)自己的需求選擇性閱讀。 本書附贈(zèng)內(nèi)容 附錄A:PyQt 5整體結(jié)構(gòu) 附錄B:Python開發(fā)技巧與實(shí)踐 附錄C:Python在線學(xué)習(xí)資料 附贈(zèng)內(nèi)容保存在github上,網(wǎng)址是:https://github.com/cxinping/PyQt5,讀者可自行下載。祝讀者學(xué)習(xí)順利、事業(yè)有成。 本書讀者 本書適合具有 Python 基礎(chǔ)的讀者,通過本書可熟悉 Python 基礎(chǔ)知識(shí)并加深鞏固。本書結(jié)構(gòu)合理,內(nèi)容翔實(shí),適合對(duì)Python、Qt和PyQt編程感興趣的科教人員和廣大的計(jì)算機(jī)編程愛好者閱讀,也可作為相關(guān)機(jī)構(gòu)的培訓(xùn)教材。 致謝 首先,我要感謝我的父親。在我上大學(xué)期間由于家庭變故,我的父親王貴誠(chéng)生病去世了,這對(duì)我打擊很大。我一直很內(nèi)疚,在他走之前,沒能見上他最后一面。在最后一次談話中,他要求我做一個(gè)對(duì)社會(huì)有用的人,實(shí)現(xiàn)自己的最大價(jià)值,盡自己的所能無私地幫助別人。如果時(shí)間可以倒流,我渴望給父親一個(gè)擁抱,對(duì)他說:我明白,一代人做一代事。作為其子,我愿意為您分憂。父親教會(huì)我人生的意義,讓我懂得人活著就要做有意義的事情,快樂地過每一天。我愛我的父親,我愛這個(gè)家。謝謝父親這些年的細(xì)心教導(dǎo),讓我懂得生活的意義。謝謝您,我的父親。 其次,我要感謝我的叔叔王輝和嬸嬸一家,我的叔叔是我的偶像,也是我做人做事的榜樣。他教會(huì)我作為一個(gè)匠人,應(yīng)該有的尊嚴(yán)和驕傲,他在我最困難的時(shí)候給予我無私的幫助,鼓勵(lì)我追尋心中的夢(mèng)想。他經(jīng)常跟我說,一生之計(jì)在于勤,一天之計(jì)在于晨,剛開始我覺得道理淺顯易懂,后來隨著年齡的增長(zhǎng)、社會(huì)閱歷的增多,才逐漸明白,一個(gè)人只有付出不亞于任何人的努力,在自己的領(lǐng)域一直努力鉆研,鍥而不舍,才能成功。這個(gè)道理很淺顯易懂,當(dāng)時(shí)年幼不覺得如何有用,直至今日,方才明白是至理名言。 本書的出版要特別感謝電子工業(yè)出版社的黃愛萍和葛娜,感謝她們?cè)谶x題策劃和稿件整理方面做出的大量工作。 同時(shí),在本書創(chuàng)作過程中,感謝編委會(huì)的全體成員,提出很多寶貴的意見。感謝編委會(huì)的邢夢(mèng)來,犧牲了大量的業(yè)余時(shí)間,積極和作者討論寫書細(xì)節(jié),校對(duì)了全部課件程序,對(duì)每個(gè)程序都做了中文注解。 感謝兄長(zhǎng)徐楠光,教會(huì)我用感恩的心去工作,積極主動(dòng)地面對(duì)困難,讓我對(duì)擁有的一切心懷感激。 感謝我的母親徐素萍,感謝我的妻子李蕾,感謝你們?cè)谖覍憰臅r(shí)候給我提出的建議,鼓勵(lì)我寫成此書。感謝母親多年來含辛茹苦的培養(yǎng),您對(duì)我的默默支持,是我積極向上的精神動(dòng)力。 感謝我的好兄弟王祥平,在本書的出版過程中提出了很多寶貴的意見。在我心力交瘁時(shí),鼓勵(lì)我永不放棄,在科大學(xué)習(xí)期間是我一生中最快樂的日子。 感謝我的師傅張?jiān)坪,您是我做人做事的榜樣。感謝您教會(huì)我寶貴的專業(yè)知識(shí),在我最落魄的時(shí)候給予我巨大的幫助,讓我有能力去實(shí)現(xiàn)自己的夢(mèng)想。我將繼續(xù)追隨您,為夢(mèng)想而努力。 感謝潭州教育的眾位老師,IOS學(xué)院的院長(zhǎng)Dream老師,Python學(xué)院的院長(zhǎng)強(qiáng)子老師,Android學(xué)院的院長(zhǎng)Hank老師,教會(huì)我專業(yè)的技術(shù),使我的技術(shù)突飛猛進(jìn),還鼓勵(lì)我要為社會(huì)做出更多的貢獻(xiàn),實(shí)現(xiàn)自己的人生價(jià)值。 感謝羅曦、張劍、陳曉楠三位同學(xué),為本書的編寫提供了大量支持。 感謝洛基英語(yǔ)(Rocky English)的韓宏術(shù)老師、查理老師和劉安樂老師,使我的英語(yǔ)水平得到提高,讓我掌握了地道、流利、準(zhǔn)確的英語(yǔ)發(fā)音,可以無障礙地閱讀英文技術(shù)文檔。給予我信心,幫助我建立人生的目標(biāo)和夢(mèng)想。 最后,特別感謝克亞營(yíng)銷的劉克亞老師,拜讀您寫的《超高價(jià)營(yíng)銷》時(shí),經(jīng)常激動(dòng)得徹夜難眠,書中的每個(gè)觀點(diǎn)都讓我興奮不已,一二三成功模式更是堅(jiān)定我寫本書的原因,您教導(dǎo)我要先無私地給予別人,幫助別人成功,然后自己才能成功,推崇共贏而不是競(jìng)爭(zhēng)。作為您的學(xué)生受益良多,您提出的克亞營(yíng)銷鐵律,教會(huì)我如何實(shí)現(xiàn)自我價(jià)值。 王碩,網(wǎng)名信平,北京鼎鑫拓達(dá)資深軟件工程師,具有8年的Java企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)和3年教育培訓(xùn)經(jīng)驗(yàn)。曾主持多個(gè)B/S項(xiàng)目的開發(fā),經(jīng)驗(yàn)豐富。擅長(zhǎng)J2EE(JSP/Servlet、 JDBC、Struts2、Spring、Hibernate)項(xiàng)目開發(fā)、Python(程序GUI、數(shù)據(jù)分析、網(wǎng)絡(luò)爬蟲、機(jī)器學(xué)習(xí))項(xiàng)目開發(fā),JavaScript、HTML 5和數(shù)據(jù)庫(kù)技術(shù),是極寬Top開源團(tuán)隊(duì)核心成員。 孫洋洋,現(xiàn)就職于一家資產(chǎn)管理公司,負(fù)責(zé)公司量化投研系統(tǒng)的開發(fā)與維護(hù),有多家券商工作與實(shí)習(xí)經(jīng)驗(yàn)。擅長(zhǎng)網(wǎng)絡(luò)爬蟲、機(jī)器學(xué)習(xí)、程序GUI開發(fā)與設(shè)計(jì),對(duì)量化投資領(lǐng)域興趣濃厚,有多年量化投資實(shí)盤操作經(jīng)驗(yàn),是極寬Top開源團(tuán)隊(duì)核心成員。
目 錄
第1章 認(rèn)識(shí)PyQt 51 1.1 PyQt框架簡(jiǎn)介1 1.1.1 PyQt 5的特點(diǎn)3 1.1.2 Qt與PyQt的關(guān)系4 1.1.3 其他圖形界面開發(fā)庫(kù)介紹4 1.1.4 PyQt 4/PyQt 56 1.1.5 Python 2/Python 36 1.2 PyQt 5環(huán)境搭建7 1.2.1 在Windows下搭建PyQt 5環(huán)境7 1.2.2 在Mac OS下搭建PyQt 5環(huán)境15 1.2.3 PyQt 5的安裝測(cè)試20 1.2.4 安裝其他Python模塊22 1.2.5 使用PyQt 5的API文檔23 1.3 Eric 6的安裝與使用25 1.3.1 Eric 6的安裝及漢化26 1.3.2 Eric 6的相關(guān)配置29 1.3.3 安裝自動(dòng)補(bǔ)全插件jedi33 1.3.4 測(cè)試Eric 635 1.3.5 Eric 6的基本使用35 1.4 本書程序下載39 第2章 Python基本語(yǔ)法41 2.1 Python簡(jiǎn)介41 2.2 數(shù)據(jù)類型43 案例2-1 基本運(yùn)算43 2.3 String(字符串)45 案例2-2 字符串入門45 案例2-3 字符串常用方法46 2.4 List(列表)47 案例2-4 列表操作48 2.5 Tuple(元組)49 案例2-5 元組操作49 2.6 Dictionary(字典)50 案例2-6 字典操作50 2.7 數(shù)據(jù)類型轉(zhuǎn)換52 2.8 控制語(yǔ)句53 案例2-7 控制語(yǔ)句53 2.9 自定義函數(shù)54 案例2-8 函數(shù)定義55 2.10 函數(shù)partial55 案例2-9 partial函數(shù)的使用56 2.11 lambda表達(dá)式57 案例2-10 lambda表達(dá)式操作57 2.12 類和實(shí)例58 案例2-11 類和實(shí)例的使用58 2.13 類的屬性和方法59 案例2-12 類的屬性和方法的使用59 2.14 類的動(dòng)態(tài)屬性61 案例2-13 類的動(dòng)態(tài)屬性操作61 第3章 Qt Designer的使用64 3.1 Qt Designer快速入門64 3.1.1 新建主窗口65 3.1.2 窗口主要區(qū)域介紹66 3.1.3 查看UI文件68 3.1.4 將.ui文件轉(zhuǎn)換為.py文件70 3.1.5 界面與邏輯分離74 3.2 布局管理入門75 3.2.1 使用布局管理器布局76 3.2.2 使用容器進(jìn)行布局79 3.3 Qt Designer 實(shí)戰(zhàn)應(yīng)用81 3.3.1 絕對(duì)布局81 3.3.2 使用布局管理器布局83 3.3.3 其他需要注意的內(nèi)容91 3.3.4 測(cè)試程序94 3.4 信號(hào)和槽關(guān)聯(lián)96 3.4.1 簡(jiǎn)單入門97 3.4.2 快速進(jìn)階101 3.5 菜單欄與工具欄106 3.5.1 界面設(shè)計(jì)106 3.5.2 效果測(cè)試110 3.5.3 應(yīng)用:加載其他窗口112 3.6 打包資源文件115 3.6.1 使用Qt Designer加載資源文件115 3.6.2 在窗體中使用資源文件116 3.6.3 轉(zhuǎn)換資源文件118 3.6.4 導(dǎo)入.py資源文件119 第4章 PyQt 5基本窗口控件122 4.1 QMainWindow122 4.1.1 窗口類型介紹122 4.1.2 創(chuàng)建主窗口123 案例4-1 創(chuàng)建主窗口124 4.1.3 將主窗口放在屏幕中間125 案例4-2 主窗口居中顯示125 4.1.4 關(guān)閉主窗口127 案例4-3 關(guān)閉主窗口127 4.2 QWidget128 4.2.1 窗口坐標(biāo)系統(tǒng)129 4.2.2 常用的幾何機(jī)構(gòu)130 案例4-4 屏幕坐標(biāo)系統(tǒng)顯示131 4.2.3 創(chuàng)建第一個(gè)PyQt 5應(yīng)用133 案例4-5 建立一個(gè)主窗口133 4.2.4 為應(yīng)用設(shè)置程序圖標(biāo)136 案例4-6 設(shè)置程序圖標(biāo)136 4.2.5 顯示氣泡提示信息137 4.3 QLabel138 案例4-7 顯示QLabel標(biāo)簽140 案例4-8 QLabel標(biāo)簽快捷鍵的使用142 4.4 文本框類控件143 4.4.1 QLineEdit143 案例4-9 EchoMode的顯示效果146 案例4-10 驗(yàn)證器147 案例4-11 輸入掩碼149 案例4-12 綜合示例150 4.4.2 QTextEdit152 案例4-13 QTextEdit的使用152 4.5 按鈕類控件154 4.5.1 QAbstractButton154 4.5.2 QPushButton154 案例4-14 QPushButton按鈕的使用155 4.5.3 QRadioButton158 案例4-15 QRadioButton按鈕的使用158 4.5.4 QCheckBox160 案例4-16 QCheckBox按鈕的使用161 4.6 QComboBox(下拉列表框)164 案例4-17 QComboBox按鈕的使用164 4.7 QSpinBox(計(jì)數(shù)器)166 案例4-18 QSpinBox的使用167 4.8 QSlider(滑動(dòng)條)168 案例4-19 QSlider的使用169 4.9 對(duì)話框類控件171 4.9.1 QDialog171 案例4-20 QDialog的使用171 4.9.2 QMessageBox173 案例4-21 QMessageBox的使用175 4.9.3 QInputDialog176 案例4-22 QInputDialog的使用176 4.9.4 QFontDialog178 案例4-23 QFontDialog的使用178 4.9.5 QFileDialog180 案例4-24 QFileDialog的使用181 4.10 窗口繪圖類控件184 4.10.1 QPainter184 案例4-25 繪制文字185 案例4-26 繪制點(diǎn)187 4.10.2 QPen189 案例4-27 QPen的使用189 4.10.3 QBrush191 案例4-28 QBrush 的使用192 4.10.4 QPixmap194 案例4-29 QPixmap的使用194 4.11 拖曳與剪貼板195 4.11.1 Drag與Drop195 案例4-30 拖曳功能197 4.11.2 QClipboard198 案例4-31 QClipboard的使用199 4.12 日歷與時(shí)間202 案例4-32 QCalendar的使用202 案例4-33 QDateTimeEdit的使用209 4.13 菜單欄、工具欄與狀態(tài)欄212 4.13.1 菜單欄212 案例4-34 QMenuBar的使用212 4.13.2 QToolBar214 案例4-35 QToolBar的使用215 4.13.3 QStatusBar216 案例4-36 QStatusBar的使用217 4.14 QPrinter218 案例4-37 QPrinter的使用218 第5章 PyQt 5高級(jí)界面控件221 5.1 表格與樹221 5.1.1 QTableView221 案例5-1 QTableView的使用222 5.1.2 QListView224 案例5-2 QListView的使用225 5.1.3 QListWidget226 案例5-3 QListWidget的使用226 5.1.4 QTableWidget227 5.1.5 QTreeView245 5.2 容器:裝載更多的控件251 5.2.1 QTabWidget251 案例5-4 QTabWidget的使用252 5.2.2 QStackedWidget254 案例5-5 QStackedWidget的使用254 5.2.3 QDockWidget256 案例5-6 QDockWidget的使用257 5.2.4 多文檔界面259 案例5-7 多重文檔界面260 5.2.5 QScrollBar262 案例5-8 QScrollBar262 5.3 多線程264 5.3.1 QTimer264 5.3.2 QThread268 案例5-9 應(yīng)用案例:分離UI主線程與工作線程274 5.3.3 事件處理276 5.4 網(wǎng)頁(yè)交互278 案例5-10 加載并顯示外部的Web頁(yè)面278 案例5-11 加載并顯示本地的Web頁(yè)面280 案例5-12 加載并顯示嵌入的HTML代碼281 案例5-13 PyQt調(diào)用JavaScript代碼283 案例5-14 JavaScript調(diào)用PyQt代碼286 第6章 PyQt 5布局管理294 6.1 好軟件的三個(gè)維度294 6.2 PyQt 5中的布局管理295 6.3 PyQt 5的絕對(duì)位置布局296 6.4 QBoxLayout(框布局)298 6.4.1 QHBoxLayout(水平布局)298 6.4.2 QVBoxLayout(垂直布局)300 6.4.3 addStretch()函數(shù)的使用301 6.5 QGridLayout(網(wǎng)格布局)303 6.5.1 單一的網(wǎng)格單元格304 6.5.2 跨越行和列的網(wǎng)格單元格306 6.6 QFormLayout(表單布局)308 6.7 嵌套布局309 6.7.1 在布局中添加其他布局309 6.7.2 在控件中添加布局311 6.8 QSplitter314 第7章 PyQt 5信號(hào)與槽317 7.1 信號(hào)與槽介紹317 7.1.1 定義信號(hào)318 7.1.2 操作信號(hào)319 7.1.3 信號(hào)與槽的入門應(yīng)用320 7.1.4 快速進(jìn)階324 7.2 信號(hào)與槽再細(xì)分324 7.2.1 內(nèi)置信號(hào)和槽函數(shù)324 7.2.2 內(nèi)置信號(hào)和自定義槽函數(shù)325 7.2.3 自定義信號(hào)和內(nèi)置槽函數(shù)326 7.2.4 自定義信號(hào)和槽函數(shù)327 7.3 信號(hào)與槽的高級(jí)玩法328 7.3.1 高級(jí)自定義信號(hào)與槽328 7.3.2 使用自定義參數(shù)333 7.3.3 裝飾器信號(hào)與槽335 7.3.4 信號(hào)與槽的斷開和連接337 7.3.5 Qt Designer神助攻:界面顯示與業(yè)務(wù)邏輯的分離339 7.3.6 多線程中信號(hào)與槽的使用345 7.4 事件處理機(jī)制入門348 7.4.1 事件和信號(hào)與槽的區(qū)別348 7.4.2 常見事件類型348 7.4.3 使用事件處理的方法349 7.4.4 經(jīng)典案例分析349 7.5 窗口數(shù)據(jù)傳遞362 7.5.1 單一窗口數(shù)據(jù)傳遞363 7.5.2 多窗口數(shù)據(jù)傳遞:調(diào)用屬性364 7.5.3 多窗口數(shù)據(jù)傳遞:信號(hào)與槽368 第8章 PyQt 5圖形和特效373 8.1 窗口風(fēng)格373 8.1.1 設(shè)置窗口風(fēng)格373 案例8-1 設(shè)置窗口風(fēng)格374 8.1.2 設(shè)置窗口樣式375 8.1.3 使用自定義的無邊框窗口376 8.2 繪圖378 8.2.1 圖像類378 8.2.2 簡(jiǎn)單繪圖379 8.2.3 雙緩沖繪圖381 案例8-2 繪制矩形,出現(xiàn)重影382 案例8-3 使用雙緩沖技術(shù)繪制矩形,避免出現(xiàn)重影384 8.3 QSS的UI美化387 8.3.1 QSS的語(yǔ)法規(guī)則387 8.3.2 QSS選擇器類型389 8.3.3 QSS子控件390 8.3.4 QSS偽狀態(tài)391 8.3.5 QDarkStyleSheet392 8.4 設(shè)置窗口背景395 8.4.1 使用QSS設(shè)置窗口背景395 8.4.2 使用QPalette設(shè)置窗口背景396 8.4.3 使用paintEvent設(shè)置窗口背景398 8.5 不規(guī)則窗口的顯示400 8.5.1 不規(guī)則窗口實(shí)現(xiàn)動(dòng)畫效果404 8.5.2 加載GIF動(dòng)畫效果406 8.6 設(shè)置樣式407 8.6.1 為標(biāo)簽添加背景圖片407 8.6.2 為按鈕添加背景圖片407 8.6.3 縮放圖片409 8.6.4 設(shè)置窗口透明409 8.6.5 加載QSS410 第9章 PyQt 5擴(kuò)展應(yīng)用412 9.1 使用PyInstaller打包項(xiàng)目生成EXE文件412 9.2 數(shù)據(jù)庫(kù)處理417 9.2.1 SQLite介紹417 9.2.2 連接數(shù)據(jù)庫(kù)421 9.2.3 執(zhí)行SQL語(yǔ)句422 9.2.4 數(shù)據(jù)庫(kù)模型視圖425 9.2.5 封裝分頁(yè)查詢控件428 9.3 Pandas在PyQt中的應(yīng)用435 9.3.1 qtpandas的安裝435 9.3.2 官方示例解讀43
你還可能感興趣
我要評(píng)論
|