“PyQt5教程”系列若不做明顯提示,默認(rèn)翻譯自zetcode。
有需要翻譯精度的朋友可以自行閱讀英文文檔。
如果本系列博文侵犯了您的合法權(quán)益,請(qǐng)?jiān)诓┛椭辛粝略u(píng)論或聯(lián)系:chen_dev@outlook.com。我會(huì)及時(shí)修改和刪除。
本PyQt5教程系列其他博文中將不做另外聲明。
PyQt5介紹
這是一份PyQt5的教程。教程的目的是讓你開(kāi)始學(xué)會(huì)使用PyQt5工具包。這個(gè)教程的內(nèi)容在Linux上創(chuàng)建并測(cè)試。
PyQt5相關(guān)
PyQt5是一套來(lái)自Digia的Qt5應(yīng)用框架和Python的粘合劑。支持Python2.x和Python3.x版本。本教程使用Pyhton 3。Qt庫(kù)是最強(qiáng)大的GUI支持庫(kù)的一種。PyQt5的官方主頁(yè)是www./news。是Riverbank Computing開(kāi)發(fā)了PyQt5。
PyQt5以一套Python模塊的形式來(lái)實(shí)現(xiàn)功能。它包含了超過(guò)620個(gè)類(lèi),600個(gè)方法和函數(shù)。它是一個(gè)多平臺(tái)的工具套件,它可以運(yùn)行在所有的主流操作系統(tǒng)中,包含Unix,Windows和Mac OS。PyQt5采用雙重許可模式。開(kāi)發(fā)者可以在GPL和社區(qū)授權(quán)之間選擇。
PyQt5的類(lèi)被劃分在幾個(gè)模塊中,下面列出了這些模塊:
- QtCore
- QtGui
- QtWidgets
- QtMultimedia
- QtBluetooth
- QtNetwork
- QtPositioning
- Enginio
- QtWebSockets
- QtWebKit
- QtWebKitWidgets
- QtXml
- QtSvg
- QtSql
- QtTest
QtCore 模塊包含了非GUI的功能設(shè)計(jì)。這個(gè)模塊被用來(lái)實(shí)現(xiàn)時(shí)間,文件和目錄,不同數(shù)據(jù)類(lèi)型,流,URL,mime類(lèi)型,線(xiàn)程和進(jìn)程。QtGui 模塊包含的類(lèi)用于窗口化的系統(tǒng)結(jié)構(gòu),事件處理,2D繪圖,基本圖形,字體和文本。QtWidgets 模塊包含的類(lèi)提供了一套UI元素來(lái)創(chuàng)建經(jīng)典桌面風(fēng)格用戶(hù)界面。QtMultimedia 模塊包含的類(lèi)用于處理多媒體內(nèi)容和鏈接攝像頭和無(wú)線(xiàn)電功能的API。QtBluetooth 模塊包含的類(lèi)用于掃描藍(lán)牙設(shè)備,并且和他們建立連接互動(dòng)。QtNetwork 模塊包含的類(lèi)用于網(wǎng)絡(luò)編程,這些類(lèi)使TCP/IP和UDP客戶(hù)端/服務(wù)端編程更加容易和輕便。QtPositioning 模塊包含的類(lèi)用于多種可獲得資源的位置限定,包含衛(wèi)星定位,Wi-Fi,或一個(gè)文本文件。Enginio 模塊用于解決客戶(hù)端訪(fǎng)問(wèn)Qt云服務(wù)托管。 QtWebSockets 模塊包含的類(lèi)用于解決WebSocket通信協(xié)議。 QtWebKit 包含的關(guān)于瀏覽器的類(lèi)用于解決基于WebKit2的支持庫(kù)。 QtWebKitWidgets 模塊包含的關(guān)于WebKit1的類(lèi)基本解決瀏覽器使用基于QtWidgets應(yīng)用問(wèn)題。 QtXml 模塊包含的類(lèi)用于解析XML文件。這個(gè)模塊提供SAX和DOM API解決方法。 QtSvg 模塊提供類(lèi)用于顯示SVG文件內(nèi)容。Scalable Vector Graphics (SVG) 是一種語(yǔ)言,用XML來(lái)描述二維圖形和圖形應(yīng)用程序。 QtSql模塊提供類(lèi)驅(qū)動(dòng)數(shù)據(jù)庫(kù)工作。 QtTest 模塊包含了方法提供PyQt5應(yīng)用的單元測(cè)試。
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中的重要改變。然而,將舊代碼遷移到新的版本中并不是非常困難。不同點(diǎn)如下:
- Python 模塊已經(jīng)被改寫(xiě). 一些模塊被舍棄 (
QtScript ), 部分的模塊被分割成子模塊 (QtGui , QtWebKit ).
- 新的模塊被引進(jìn), 包含
QtBluetooth , QtPositioning , 和 Enginio .
- PyQt5 只支持最新風(fēng)格的信號(hào)和槽的寫(xiě)法. SIGNAL()和SLOT()的調(diào)用將不會(huì)被長(zhǎng)時(shí)間支持.
- PyQt5 不支持任何在Qt 5.0版本中棄用或取消的API.
|