【有庫存】NT售價: 645 元
Python近幾年無疑是編程語言屆的黑馬了,橫掃了TIOBE、Stack Overflow各大榜單。根據IEEE Spectrum發布的編程語言排行榜,2022年主流的十大編程語言中,Python排名第一,而且Python的語言優勢也很多,簡單易學、免費/開源、速度快/效率高、可移植性強、面向對象、可擴展性、可嵌入性、豐富的庫等都是Python的優勢,而且Python相對來說比較簡單,對新手友好,這些都決定了學Python不怕學不會,也不怕沒前途。去年就是Python摘得IEEE的桂冠,今年依舊如此。回顧近幾年的編程語言,還沒有另外一門編程語言發展得如此迅猛。各種榜單的加持下,似乎不學Python就被打上落后的標簽了。那么Qt呢?Qt作為一個跨平臺的開源UI(用戶界面)應用程序開發框架,在國內外的應用有很大的發展,尤其是面向軍工、嵌入式、自主可控的信息安全行業,應用更是廣泛。所以,掌握Qt的開發技能對于跨平臺開發者而言顯得尤為重要,因為當今很多商業軟件都要求能在多個操作系統下運行。在跨平臺圖形界面編程世界,Qt已經是事實上的霸主。那么由Python和Qt結合起來的PyQt,當然是讓Python開發者如虎添翼!使得Python開發技能更加完善。本書既是介紹PyQt5的快速入門書籍,也是介紹PyQt5實戰應用的書籍。PyQt5是對Qt所有類的Python封裝,即可以利用Qt的強大功能,也可以利用Python豐富的生態,同時能夠結合Python簡潔的語法進行操作,其結果就是使用PyQt5可以高效簡單地開發出自己想要的程序。本書實例豐富,對PyQt5基礎知識的介紹比較全面,同時對新手使用PyQt5的一些重點難點都有專門的章節進行針對性分析,本書相對于市面上其它PyQt開發書籍來說,就是循序漸進,充分照顧初學者,使得初學者的學習曲線非常平緩,因此特別適合作為大專院校和軟件培訓班的教科用書。同時,本書實例豐富、注釋詳細,能幫助讀者快速掌握PyQt5的實戰應用,我們知道實例的作用非常大,稍微有經驗的工程師看一遍帶注釋的代碼,基本就能掌握開發精髓。本書既有手工寫代碼的方式,這是深刻理解原理的基礎,也采用了主流的可視化界面開發工具Qt Designer進行圖形界面的設計,并采用Python世界的主流集成開發環境PyCharm進行代碼編輯和調試等,PyCharm是一種Python IDE(Integrated Development Environment,集成開發環境),帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、項目管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。可以說,學會本書,不但學會了PyQt5,而且也學會了Qt Designer和PyCharm。本書作者為朱文偉和李建英,雖然我們已經用心在寫本書,但是疏漏之處在所難免,希望讀者不吝指教,,郵件主題寫“PyQt 5.x從入門到精通”。作 者 2022年9月
本書既是介紹PyQt5的快速入門書籍,也是介紹PyQt5實戰應用的書籍。本書學習曲線平緩,除了適合初學者之外,其內容詳細和廣泛的特點又使得其非常適合做軟件工程師們的案頭查詢手冊,大大節省了繁忙的工程師去查閱和篩選信息的時間,做到“一本在手,PyQt我有”。本書配套示例源碼。本書共分11章,從最基本的PyQt5環境搭建開始,不但有PyQt5窗口設計基礎、PyQt5常用控件、菜單、工具欄和狀態欄、對話框應用、布局管理等基礎知識,還包括了多線程編程、數據庫編程、圖形圖像編程和網絡編程等。本書聚焦PyQt5,內容雖多但都是實實在在的“干貨”。本書旨在幫助讀者以最短的時間掌握PyQt5的基礎知識及實戰應用,適合PyQt5初學者以及開發工程師,也適合作為高等院校計算機軟件開發及相關專業的教材。
第1章Qt概述 11.1Qt簡介 11.2發展歷程 11.3Qt優點 21.4Qt的主要應用領域 31.5認識PyQt 5第2章搭建PyQt開發環境 72.1搭建Windows下的PyQt開發環境 72.1.1下載和安裝Python 72.1.2Pycharm開發Python程序 92.1.3安裝PyQt 112.1.4安裝可視化界面設計器 212.1.5集成QtDesigner到PyCharm 302.1.6PyCharm的一些小技巧 392.1.7卸載PyQt 402.2PyQt的功能模塊 40第3章PyQt編程基礎 503.1字節數組類QByteArray 523.1.1Unicode編碼及其UTF-8實現 523.1.2Python中bytes類 543.1.3構造函數 563.1.4數組信息 573.1.5增加數據 573.1.6刪除數據 593.1.7修改數據 603.1.8查找 623.1.9提取內容 633.1.10切分 653.1.11轉換 653.1.12比較 713.2認識PyQt界面Widgets 713.3PyQt中界面相關的類庫 723.3.1類QObject 733.3.2類QWidget 743.3.3和主窗口有關的類 743.3.4對話框和控件類 753.3.5QtWidgets應用程序類型 753.4獲取當前時間 753.5事件機制 773.5.1基本概念 773.5.2事件來源 783.5.3事件的描述 783.5.4事件的類型 783.5.5GUI應用程序的事件處理流程 793.5.6事件的傳遞 793.5.7事件處理和過濾的方式 793.6信號和槽 863.6.1基本概念 863.6.2事件機制與信號槽機制的區別 883.6.3內置信號與內置槽函數 883.6.4內置信號與自定義槽函數 903.6.5自定義信號與內置槽函數 913.6.6自定義信號與自定義槽函數 933.6.7Qt中的坐標系統 98第4章PyQt對話框程序設計 1024.1對話框程序設計概述 1024.2QDialog類及其函數 1024.3創建對話框程序 1044.3.2設置對話框的尺寸、圖標和背景圖片 1084.4在對話框上使用按鈕控件 1184.4.1顯示控件工具箱 1194.4.2拖動一個按鈕到對話框 1204.4.3選中按鈕控件 1204.4.4移動對話框上的按鈕控件 1204.4.5對齊對話框上的按鈕控件 1204.4.6調整按鈕控件的大小 1214.4.7刪除對話框上的按鈕控件 1214.4.8為按鈕添加信號處理函數 1214.5模態對話框和非模態對話框 1284.6通用對話框 1334.6.1消息對話框QMessageBox 1344.6.2文件對話框QFileDialog 1414.6.3字體對話框QFontDialog 1494.6.4顏色對話框 1514.7移動對話框到指定位置 1524.8在對話框非標題欄區域實現拖動 154第5章PyQt控件設計 1565.1控件概述 1565.2對話框程序設計概述 1565.3按鈕類控件 1575.3.1概述 1575.3.2按鈕類的父類QAbstractButton 1585.3.3推壓按鈕QPushButton 1585.3.4工具按鈕QToolButton 1655.3.5單選按鈕RadioButton 1685.3.6復選框按鈕QCheckBox 1735.3.7對話框組合按鈕QDialogButtonBox 1785.4列表視圖控件QListView 1795.4.1抽象數據項模型QAbstractItemModel 1805.4.2字符串列表數據模型QStringListModel 1815.4.3文件系統數據模型QDirModel 1845.5樹形視圖控件QTreeView 1875.5.1標準數據項QStandardItem 1875.5.2標準數據項模型QStandardItemModel 1885.5.3添加表頭 1925.5.4隱藏表頭 1925.5.5條目的操作 1925.6TreeWidge控件 2025.7組合框QComboBox 2045.7.1添加內容項和設置圖標 2055.7.2刪除某個內容項 2055.7.3清空組合框內容 2055.7.4QComboBox列表項的訪問 2055.7.5選擇項發生變化時的信號 2065.8字體組合框 2075.9標簽控件QLabel 2085.10分組框控件QGroupBox 2155.11正則表達式和類QRegExp 2165.11.1正則表達式規則 2165.11.2正則表達式中的一些高級規則 2195.11.3其他通用規則 2215.11.4表達式屬性 2225.11.5類QRegExp 2225.12行編輯框QLineEdit 2265.12.1常用成員函數 2265.12.2描述輸入框顯示其內容的枚舉 2275.12.3對齊方式 2275.12.4獲取和設置選擇的文本 2275.12.5常用信號 2275.12.6限制字符的輸入 2285.13進度條控件QProgressBar 2335.13.1QProgressBar常用函數 2345.13.2進度方向 2355.13.3文本顯示 2355.13.4繁忙指示 2365.14布局管理器 2375.14.1基本布局管理器QBoxLayout 2385.14.2柵格布局管理器QGridLayout 2385.14.3窗體布局管理器QFormLayout 239第6章PyQt數據庫編程 2406.1數據庫的基本概念 2406.1.1數據庫 2406.1.2數據庫管理系統 2416.1.3SQL語言 2416.2QtSql模塊 2416.2.1驅動層 2426.2.2SQL接口層 2436.2.3用戶接口層 2436.3訪問數據庫 2436.3.1訪問微軟的Access 2436.3.2訪問Sqlite數據庫 248第7章PyQt文件編程 2547.1Qt下Python文件編程 2547.1.1文件路徑 2547.1.2當前工作目錄 2577.1.3絕對路徑與相對路徑 2577.1.4Python文件基本操作 2597.1.5打開文件函數 2597.1.6讀取文件函數 2637.1.7按行讀取文件 2647.1.8向文件中寫入數據 2667.1.9關閉文件 2687.1.10seek和tell函數 2697.2利用PyQt庫進行文件編程 2717.2.1輸入/輸出設備類 2717.2.2文件類QFile 271第8章PyQt圖形編程 2828.1概述 2828.2重繪事件處理函數paintEvent 2838.3點坐標類QPOINT 2858.3.1成員函數 2858.3.2相關非成員 2868.3.3定義一個點 2868.3.4計算歐式距離(兩點之間的距離) 2868.3.5獲取和設置點的分量值 2878.4矩形尺寸類QSize 2888.4.1定義一個矩形尺寸 2898.4.2獲取和設置矩形尺寸的寬度和高度 2898.4.3縮放矩形尺寸 2908.5顏色 2928.5.1構造顏色 2948.5.2獲取和設置rgb分量 2948.6畫筆類QPen 2968.6.1畫筆的屬性 2968.6.2構造一支畫筆 2998.6.3獲取或設置畫筆顏色 3008.6.4獲取或設置畫筆寬度 3008.6.5獲取或設置畫筆線型樣式 3008.7畫刷 3028.8畫圖類QPainter 3108.8.1畫直線 3118.8.2畫矩形 3118.8.3畫橢圓和圓 3128.8.4繪制文本 312第9章菜單欄、工具欄和狀態欄 3169.1菜單的設計與開發 3169.1.1菜單欄類QMenuBar 3189.1.2動作類QAction 3199.1.3菜單類QMenu 3199.1.4可視化添加菜單 3249.1.5右鍵菜單 3279.2工具欄的設計與開發 3299.3狀態欄的設計與開發 3319.3.2子菜單項提示信息顯示在狀態欄上 3349.3.3臨時信息不需要標簽 3359.3.4狀態欄上使用按鈕 336第10章多線程基本編程 33910.1使用多線程的好處 33910.2多線程編程的基本概念 34010.2.1操作系統和多線程 34010.2.2線程的基本概念 34010.2.3線程的狀態 34110.2.4線程函數 34210.2.5線程標識 34210.2.6QThread的基本使用 34210.2.7線程間通信 345第11章PyQt網絡編程 35011.1TCP/IP協議 35011.1.1基本概念 35011.1.2TCP/IP協議的分層結構 35011.2獲取主機網絡信息 35211.2.1類QHostInfo 35211.2.2查詢本機主機名 35311.2.3查詢遠程主機的IP地址 35411.3TCP編程 35511.4UDP編程 36611.4.1UDP通信概述 36611.4.2UDP單播編程 36611.4.3單播、多播(組播)和廣播 37011.5HTTP操作 37211.5.1HTTP簡介 37311.5.2HTTP工作原理 37311.5.3HTTP的特點 37411.5.4HTTP消息結構 37411.5.5客戶端請求消息 37411.5.6服務器響應消息 37511.5.7HTTP狀態碼 37711.5.8HTTP狀態碼分類 37711.5.9JSON數據 37711.5.10HTTPGET請求 38011.5.11HTTPPOST請求 38111.5.12使用QNetworkAccessManager進行身份驗證 38311.5.13提取一個網站圖標 38411.6FTP開發 38511.6.1FTP概述 38511.6.2FTP的工作原理 38611.6.3FTP的傳輸方式 38711.6.4FTP的工作方式 38711.6.5FTP命令 38811.6.6FTP應答碼 39111.6.7開發FTP客戶端 392第12章PyQt多媒體編程 39912.1概述 39912.2視頻播放類QMediaPlayer 40012.2.1重要成員函數 40012.2.2重要信號 40012.2.3播放音頻 40212.3視頻部件類QVideoWidget 40512.4播放列表類QMediaPlaylist 408