PyQt是Qt框架的Python語言實現,由Riverbank Computing開發,是最強大的GUI庫之一。PyQt提供了一個設計良好的窗口控件集合,每個PyQt控件都對應一個Qt控件,所以PyQt的API接口與Qt的API接口很接近,但PyQt再也不使用QMake系統和Q_OBJECT宏。
官方網站:www.riverbankcomputing.com
PyQt5提供GPL版和商業版證書,自由開發者可使用免費的GPL許可,若是須要將PyQt用於商業應用,則必須購買商業許可。web
PyQt5特性以下:
(1)基於高性能的Qt的GUI控件集。
(2)可以跨平臺運行在Linux、Window和Mac OS系統上。
(3)使用信號槽機制進行通訊。
(4)對Qt庫進行徹底封裝。
(5)可使用成熟的IDE進行界面設計,並自動生成可執行的Python代碼。
(6)提供一整套種類齊全的窗口控件。數據庫
PyQt5與PyQt4區別以下:
(1)從新組合模塊,PyQt5中一些模塊已經被廢棄(QtScript),有些被拆分爲兩個子模塊(QtGui,QtWebKit)。
(2)添加新模塊,如QtBluetooth,QtPositioning和Enginio。
(3)廢棄SINGAL()和SLOT(),使用新的信號槽處理方式。
(4)再也不支持全部被標記爲廢棄的或不建議使用的Qt API。編程
PyQt5是由一系列Python模塊組成,有超過620個類,6000個函數和方法,主要模塊以下:
(1)QtCore包含核心的非GUI的功能。主要與時間、文件、文件
夾、各類數據、流、URLs、mime類文件、進程、線程一塊兒使用。
(2)QtGui包含窗口系統、事件處理、2D圖像、基本繪畫、字體和文字類。QtWidgets類包含一系列建立桌面應用的UI元素。
(3)QtMultimedia包含處理多媒體和調用攝像頭API的類。
(4)QtBluetooth模塊包含查找和鏈接藍牙的類。
(5)QtNetwork包含網絡編程的類,能讓TCP/IP和UDP開發變得更加方便和可靠。
(6)QtPositioning包含定位的類,可使用衛星、WiFi甚至文本。
(7)Engine包含經過客戶端進入和管理Qt Cloud的類。
(8)QtWebSockets包含WebSocket協議的類。
(9)QtWebKit包含一個基WebKit2的web瀏覽器。
(10)QtWebKitWidgets包含基於QtWidgets的WebKit1類。
(11)QtXml包含處理xml的類,提供SAX和DOM API的工具。
(12)QtSvg提供顯示SVG內容的類,Scalable Vector Graphics(SVG)是一種是一種基於可擴展標記語言(XML),用於描述二維矢量圖形的圖形格式。
(13)QtSql提供處理數據庫的工具。
(14)QtTest提供測試PyQt5應用的工具。瀏覽器
import sys import os from PyQt5 import QtWidgets, QtCore if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) widget = QtWidgets.QWidget() widget.resize(800, 600) widget.setWindowTitle("Hello, PyQt5") widget.show() sys.exit(app.exec_())