PySide是一個免費的軟體,與PyQt不同之處在於使用了LGPL,允許PySide免費的開發商業軟體。
PySide有15個模組。這些模組支援對GUI,多媒體,XML,網路以及資料庫進行操作。本教程的目的主要是學習其中的兩個模組:QtCore和QtGui。
QtCore是非介面功能模組,主要對檔案目錄,資料類型,輸入輸出資料流,url以及線程等提供支援。QtGui提供了對常見介面元素的支援,例如,對話方塊,視窗,狀態列,工具列等等。
首先從Hello world開始
代碼如下:
#!/usr/bin/python
# Import PySide classes
import sys
from PySide.QtCore import *
from PySide.QtGui import *
# Create a Qt application
app = QApplication(sys.argv)
# Create a Label and show it
label = QLabel("Hello World")
label.show()
# Enter Qt application main loop
app.exec_()
sys.exit()
編寫PySide的案頭應用,首先要匯入QtCore和QtGui,因為這些類包含了應用中主要功能。QtGui包含介面元素,QtCore包含處理訊號和槽的函數等等。在匯入模組完成之後,需要建立QApplication的對象,該對象需要從命令列中接受參數,因此需要想QApplication中傳遞sys.argv。然後,為了讓Hello world順利出現,需要給一個QLabel對象。最後調用show方法顯示label。
app.exec_()將會進入Qt的主迴圈中不停的輪詢偵聽訊號,接受到訊號後,就尋找與處理訊號的控制代碼即槽函數。
sys.exit() 就是退出。
Tips :
最後兩句一般寫成: sys.exit(app.exec_())
這裡,之所以寫成app.exec_() 而不是app.exec() 是因為exec是python中的關鍵字,所以Qt使用exec_避開。
另外,在PySide中可以使用html標籤使內容更加豐富例如:
代碼如下:
label = QLabel("Hello World")