本教程的目的是帶領你入門PyQt5。教程內所有代碼都在Linux上測試通過。PyQt4 教程是PyQt4的教程,PyQt4是一個Python(同時支持2和3)版的Qt庫。
關於 PyQt5
PyQt5 是Digia的一套Qt5應用框架與python的結合,同時支持2.x和3.x。本教程使用的是3.x。Qt庫由Riverbank Computing開發,是最強大的GUI庫之一 ,官方網站:www.riverbankcomputing.co.uk/news。
PyQt5是由一系列Python模塊組成。超過620個類,6000函數和方法。能在諸如Unix、Windows和Mac OS等主流操作系統上運行。PyQt5有兩種證書,GPL和商業證書。
PyQt5類分爲很多模塊,主要模塊有:
- QtCore 包含了核心的非GUI的功能。主要和時間、文件與文件夾、各種數據、流、URLs、mime類文件、進程與線程一起使用。
- QtGui 包含了窗口系統、事件處理、2D圖像、基本繪畫、字體和文字類。
- QtWidgets
- QtMultimedia
- QtBluetooth
- QtNetwork
- QtPositioning
- Enginio
- QtWebSockets
- QtWebKit
- QtWebKitWidgets
- QtXml
- QtSvg
- QtSql
- QtTest
QtWidgets類包含了一系列創建桌面應用的UI元素。
QtMultimedia包含了處理多媒體的內容和調用攝像頭API的類。
QtBluetooth模塊包含了查找和連接藍牙的類。
QtNetwork包含了網絡編程的類,這些工具能讓TCP/IP和UDP開發變得更加方便和可靠。
QtPositioning包含了定位的類,可以使用衛星、WiFi甚至文本。
Engine包含了通過客戶端進入和管理Qt Cloud的類。
QtWebSockets包含了WebSocket協議的類。
QtWebKit包含了一個基WebKit2的web瀏覽器。
QtWebKitWidgets包含了基於QtWidgets的WebKit1的類。
QtXml包含了處理xml的類,提供了SAX和DOM API的工具。
QtSvg提供了顯示SVG內容的類,Scalable Vector Graphics (SVG)是一種是一種基於可擴展標記語言(XML),用於描述二維矢量圖形的圖形格式(這句話來自於維基百科)。
QtSql提供了處理數據庫的工具。
QtTest提供了測試PyQt5應用的工具。
PyQt4和PyQt5的區別
PyQt5不兼容PyQt4。PyQt5有一些巨大的改進。但是,遷移並不是很難,兩者的區別如下:
- 重新組合模塊,一些模塊已經被廢棄(QtScript),有些被分爲兩個子模塊(QtGui, QtWebKit)。
- 添加了新的模塊,比如QtBluetooth, QtPositioning,和Enginio。
- 廢棄了SINGAL()和SLOT()的調用方式,使用了新的信號和xx處理方式。
- 不再支持被標記爲廢棄的或不建議使用的API。