PyQt5教程閱讀須知
“PyQt5教程”系列若不做明顯提示,默認翻譯自zetcode。
有需要翻譯精度的朋友可以自行閱讀英文文檔。
如果本系列博文侵犯了您的合法權益,請在博客中留下評論或聯系:chen_dev@outlook.com。我會及時修改和刪除。
本PyQt5教程系列其他博文中將不做另外聲明。
PyQt5介紹
這是一份PyQt5的教程。教程的目的是讓你開始學會使用PyQt5工具包。這個教程的內容在Linux上創建並測試。
PyQt5相關
PyQt5是一套來自Digia的Qt5應用框架和Python的粘合劑。支持Python2.x和Python3.x版本。本教程使用Pyhton 3。Qt庫是最強大的GUI支持庫的一種。PyQt5的官方主頁是www.riverbankcomputing.co.uk/news。是Riverbank Computing開發了PyQt5。
PyQt5以一套Python模塊的形式來實現功能。它包含了超過620個類,600個方法和函數。它是一個多平台的工具套件,它可以運行在所有的主流操作系統中,包含Unix,Windows和Mac OS。PyQt5采用雙重許可模式。開發者可以在GPL和社區授權之間選擇。
PyQt5的類被划分在幾個模塊中,下面列出了這些模塊:
- QtCore
- QtGui
- QtWidgets
- QtMultimedia
- QtBluetooth
- QtNetwork
- QtPositioning
- Enginio
- QtWebSockets
- QtWebKit
- QtWebKitWidgets
- QtXml
- QtSvg
- QtSql
- QtTest
QtCore 模塊包含了非GUI的功能設計。這個模塊被用來實現時間,文件和目錄,不同數據類型,流,URL,mime類型,線程和進程。QtGui 模塊包含的類用於窗口化的系統結構,事件處理,2D繪圖,基本圖形,字體和文本。QtWidgets 模塊包含的類提供了一套UI元素來創建經典桌面風格用戶界面。QtMultimedia 模塊包含的類用於處理多媒體內容和鏈接攝像頭和無線電功能的API。QtBluetooth 模塊包含的類用於掃描藍牙設備,並且和他們建立連接互動。QtNetwork 模塊包含的類用於網絡編程,這些類使TCP/IP和UDP客戶端/服務端編程更加容易和輕便。QtPositioning 模塊包含的類用於多種可獲得資源的位置限定,包含衛星定位,Wi-Fi,或一個文本文件。Enginio 模塊用於解決客戶端訪問Qt雲服務托管。 QtWebSockets 模塊包含的類用於解決WebSocket通信協議。 QtWebKit 包含的關於瀏覽器的類用於解決基於WebKit2的支持庫。 QtWebKitWidgets 模塊包含的關於WebKit1的類基本解決瀏覽器使用基於QtWidgets應用問題。 QtXml 模塊包含的類用於解析XML文件。這個模塊提供SAX和DOM API解決方法。 QtSvg 模塊提供類用於顯示SVG文件內容。Scalable Vector Graphics (SVG) 是一種語言,用XML來描述二維圖形和圖形應用程序。 QtSql模塊提供類驅動數據庫工作。 QtTest 模塊包含了方法提供PyQt5應用的單元測試。
PyQt4 和 PyQt5 的不同之處
The PyQt5 is not backward compatible with PyQt4; there are several significant changes in PyQt5. However, it is not very difficult to adjust older code to the new library. The differences are, among others, the following:
PyQt5不向后兼容PyQt4;這是一些在PyQt5中的重要改變。然而,將舊代碼遷移到新的版本中並不是非常困難。不同點如下:
- Python 模塊已經被改寫. 一些模塊被舍棄 (
QtScript), 部分的模塊被分割成子模塊 (QtGui,QtWebKit). - 新的模塊被引進, 包含
QtBluetooth,QtPositioning, 和Enginio. - PyQt5 只支持最新風格的信號和槽的寫法. SIGNAL()和SLOT()的調用將不會被長時間支持.
- PyQt5 不支持任何在Qt 5.0版本中棄用或取消的API.
