PyQt 5從入門到精通 ( 簡體 字) |
作者:朱文偉 | 類別:1. -> 程式設計 -> Python 2. -> 作業系統 -> Linux -> QT |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 56282 詢問書籍請說出此書號!【有庫存】 NT售價: 645 元 |
出版日:5/1/2023 |
頁數:384 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302632450 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: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概述 1 1.1Qt簡介 1 1.2發展歷程 1 1.3Qt優點 2 1.4Qt的主要應用領域 3 1.5認識PyQt 5 第2章搭建PyQt開發環境 7 2.1搭建Windows下的PyQt開發環境 7 2.1.1下載和安裝Python 7 2.1.2Pycharm開發Python程序 9 2.1.3安裝PyQt 11 2.1.4安裝可視化界面設計器 21 2.1.5集成QtDesigner到PyCharm 30 2.1.6PyCharm的一些小技巧 39 2.1.7卸載PyQt 40 2.2PyQt的功能模塊 40 第3章PyQt編程基礎 50 3.1字節數組類QByteArray 52 3.1.1Unicode編碼及其UTF-8實現 52 3.1.2Python中bytes類 54 3.1.3構造函數 56 3.1.4數組信息 57 3.1.5增加數據 57 3.1.6刪除數據 59 3.1.7修改數據 60 3.1.8查找 62 3.1.9提取內容 63 3.1.10切分 65 3.1.11轉換 65 3.1.12比較 71 3.2認識PyQt界面Widgets 71 3.3PyQt中界面相關的類庫 72 3.3.1類QObject 73 3.3.2類QWidget 74 3.3.3和主窗口有關的類 74 3.3.4對話框和控件類 75 3.3.5QtWidgets應用程序類型 75 3.4獲取當前時間 75 3.5事件機制 77 3.5.1基本概念 77 3.5.2事件來源 78 3.5.3事件的描述 78 3.5.4事件的類型 78 3.5.5GUI應用程序的事件處理流程 79 3.5.6事件的傳遞 79 3.5.7事件處理和過濾的方式 79 3.6信號和槽 86 3.6.1基本概念 86 3.6.2事件機制與信號槽機制的區別 88 3.6.3內置信號與內置槽函數 88 3.6.4內置信號與自定義槽函數 90 3.6.5自定義信號與內置槽函數 91 3.6.6自定義信號與自定義槽函數 93 3.6.7Qt中的坐標系統 98 第4章PyQt對話框程序設計 102 4.1對話框程序設計概述 102 4.2QDialog類及其函數 102 4.3創建對話框程序 104 4.3.2設置對話框的尺寸、圖標和背景圖片 108 4.4在對話框上使用按鈕控件 118 4.4.1顯示控件工具箱 119 4.4.2拖動一個按鈕到對話框 120 4.4.3選中按鈕控件 120 4.4.4移動對話框上的按鈕控件 120 4.4.5對齊對話框上的按鈕控件 120 4.4.6調整按鈕控件的大小 121 4.4.7刪除對話框上的按鈕控件 121 4.4.8為按鈕添加信號處理函數 121 4.5模態對話框和非模態對話框 128 4.6通用對話框 133 4.6.1消息對話框QMessageBox 134 4.6.2文件對話框QFileDialog 141 4.6.3字體對話框QFontDialog 149 4.6.4顏色對話框 151 4.7移動對話框到指定位置 152 4.8在對話框非標題欄區域實現拖動 154 第5章PyQt控件設計 156 5.1控件概述 156 5.2對話框程序設計概述 156 5.3按鈕類控件 157 5.3.1概述 157 5.3.2按鈕類的父類QAbstractButton 158 5.3.3推壓按鈕QPushButton 158 5.3.4工具按鈕QToolButton 165 5.3.5單選按鈕RadioButton 168 5.3.6復選框按鈕QCheckBox 173 5.3.7對話框組合按鈕QDialogButtonBox 178 5.4列表視圖控件QListView 179 5.4.1抽象數據項模型QAbstractItemModel 180 5.4.2字符串列表數據模型QStringListModel 181 5.4.3文件系統數據模型QDirModel 184 5.5樹形視圖控件QTreeView 187 5.5.1標準數據項QStandardItem 187 5.5.2標準數據項模型QStandardItemModel 188 5.5.3添加表頭 192 5.5.4隱藏表頭 192 5.5.5條目的操作 192 5.6TreeWidge控件 202 5.7組合框QComboBox 204 5.7.1添加內容項和設置圖標 205 5.7.2刪除某個內容項 205 5.7.3清空組合框內容 205 5.7.4QComboBox列表項的訪問 205 5.7.5選擇項發生變化時的信號 206 5.8字體組合框 207 5.9標簽控件QLabel 208 5.10分組框控件QGroupBox 215 5.11正則表達式和類QRegExp 216 5.11.1正則表達式規則 216 5.11.2正則表達式中的一些高級規則 219 5.11.3其他通用規則 221 5.11.4表達式屬性 222 5.11.5類QRegExp 222 5.12行編輯框QLineEdit 226 5.12.1常用成員函數 226 5.12.2描述輸入框顯示其內容的枚舉 227 5.12.3對齊方式 227 5.12.4獲取和設置選擇的文本 227 5.12.5常用信號 227 5.12.6限制字符的輸入 228 5.13進度條控件QProgressBar 233 5.13.1QProgressBar常用函數 234 5.13.2進度方向 235 5.13.3文本顯示 235 5.13.4繁忙指示 236 5.14布局管理器 237 5.14.1基本布局管理器QBoxLayout 238 5.14.2柵格布局管理器QGridLayout 238 5.14.3窗體布局管理器QFormLayout 239 第6章PyQt數據庫編程 240 6.1數據庫的基本概念 240 6.1.1數據庫 240 6.1.2數據庫管理系統 241 6.1.3SQL語言 241 6.2QtSql模塊 241 6.2.1驅動層 242 6.2.2SQL接口層 243 6.2.3用戶接口層 243 6.3訪問數據庫 243 6.3.1訪問微軟的Access 243 6.3.2訪問Sqlite數據庫 248 第7章PyQt文件編程 254 7.1Qt下Python文件編程 254 7.1.1文件路徑 254 7.1.2當前工作目錄 257 7.1.3絕對路徑與相對路徑 257 7.1.4Python文件基本操作 259 7.1.5打開文件函數 259 7.1.6讀取文件函數 263 7.1.7按行讀取文件 264 7.1.8向文件中寫入數據 266 7.1.9關閉文件 268 7.1.10seek和tell函數 269 7.2利用PyQt庫進行文件編程 271 7.2.1輸入/輸出設備類 271 7.2.2文件類QFile 271 第8章PyQt圖形編程 282 8.1概述 282 8.2重繪事件處理函數paintEvent 283 8.3點坐標類QPOINT 285 8.3.1成員函數 285 8.3.2相關非成員 286 8.3.3定義一個點 286 8.3.4計算歐式距離(兩點之間的距離) 286 8.3.5獲取和設置點的分量值 287 8.4矩形尺寸類QSize 288 8.4.1定義一個矩形尺寸 289 8.4.2獲取和設置矩形尺寸的寬度和高度 289 8.4.3縮放矩形尺寸 290 8.5顏色 292 8.5.1構造顏色 294 8.5.2獲取和設置rgb分量 294 8.6畫筆類QPen 296 8.6.1畫筆的屬性 296 8.6.2構造一支畫筆 299 8.6.3獲取或設置畫筆顏色 300 8.6.4獲取或設置畫筆寬度 300 8.6.5獲取或設置畫筆線型樣式 300 8.7畫刷 302 8.8畫圖類QPainter 310 8.8.1畫直線 311 8.8.2畫矩形 311 8.8.3畫橢圓和圓 312 8.8.4繪制文本 312 第9章菜單欄、工具欄和狀態欄 316 9.1菜單的設計與開發 316 9.1.1菜單欄類QMenuBar 318 9.1.2動作類QAction 319 9.1.3菜單類QMenu 319 9.1.4可視化添加菜單 324 9.1.5右鍵菜單 327 9.2工具欄的設計與開發 329 9.3狀態欄的設計與開發 331 9.3.2子菜單項提示信息顯示在狀態欄上 334 9.3.3臨時信息不需要標簽 335 9.3.4狀態欄上使用按鈕 336 第10章多線程基本編程 339 10.1使用多線程的好處 339 10.2多線程編程的基本概念 340 10.2.1操作系統和多線程 340 10.2.2線程的基本概念 340 10.2.3線程的狀態 341 10.2.4線程函數 342 10.2.5線程標識 342 10.2.6QThread的基本使用 342 10.2.7線程間通信 345 第11章PyQt網絡編程 350 11.1TCP/IP協議 350 11.1.1基本概念 350 11.1.2TCP/IP協議的分層結構 350 11.2獲取主機網絡信息 352 11.2.1類QHostInfo 352 11.2.2查詢本機主機名 353 11.2.3查詢遠程主機的IP地址 354 11.3TCP編程 355 11.4UDP編程 366 11.4.1UDP通信概述 366 11.4.2UDP單播編程 366 11.4.3單播、多播(組播)和廣播 370 11.5HTTP操作 372 11.5.1HTTP簡介 373 11.5.2HTTP工作原理 373 11.5.3HTTP的特點 374 11.5.4HTTP消息結構 374 11.5.5客戶端請求消息 374 11.5.6服務器響應消息 375 11.5.7HTTP狀態碼 377 11.5.8HTTP狀態碼分類 377 11.5.9JSON數據 377 11.5.10HTTPGET請求 380 11.5.11HTTPPOST請求 381 11.5.12使用QNetworkAccessManager進行身份驗證 383 11.5.13提取一個網站圖標 384 11.6FTP開發 385 11.6.1FTP概述 385 11.6.2FTP的工作原理 386 11.6.3FTP的傳輸方式 387 11.6.4FTP的工作方式 387 11.6.5FTP命令 388 11.6.6FTP應答碼 391 11.6.7開發FTP客戶端 392 第12章PyQt多媒體編程 399 12.1概述 399 12.2視頻播放類QMediaPlayer 400 12.2.1重要成員函數 400 12.2.2重要信號 400 12.2.3播放音頻 402 12.3視頻部件類QVideoWidget 405 12.4播放列表類QMediaPlaylist 408 |
序: |