在這系列的教學裡面,如果有不太清楚的地方,歡迎互相交流。
如果覺得有想補充的地方也歡迎回覆給我,畢竟我也是才剛起步而已。
另外在大部分的程式,我會採用物件導向的方式,
如果不懂的地方也歡迎回覆發問。
下面就開始介紹如何安裝與開始第一個視窗程式的開發
透過pip安裝Qt5套件
$ pip install pyqt5
安裝完之後即可使用Qt5的函式庫,下面將撰寫一個簡單的空白視窗
first.py
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class MainWindow(QWidget):
def __init__(self):
super(self.__class__, self).__init__()
self.setupUi()
self.show()
def setupUi(self):
self.setWindowTitle("Hello World!")
if __name__ == "__main__":
app = QApplication(sys.argv)
MainWindow = MainWindow()
sys.exit(app.exec_())
執行結果如下
在這個程式裡面我們引用了 sys, QApplication, QWidget
- sys:用於Qt開始的參數
- QApplication:負責管理Qt的所有資源(唯一一個)
- QWidget:在此為我們主要的視窗
接著介紹程式碼內部的運作
class MainWindow(QWidget):
建立一個Class名為MainWindow並且繼承QWidget,有QWidget的所有功能
def __init__(self):
super(self.__class__, self).__init__()
self.setupUi()
self.show()
覆寫 __init__ 這個方法,並且在下一行呼叫 super,
這個方法會去執行原本QWidget的__init__函式
self.setupUi 執行我們在下面撰寫 setupUi(self) 的這個函式,用於預先設定我們的視窗
self.show 顯示視窗
def setupUi(self):
self.setWindowTitle("Hello World!")
建立setupUi的函示用於設定視窗屬性
self.setWindowTitle("Hello World!")
設定視窗的標題為 Hello World
if __name__ == "__main__":
app = QApplication(sys.argv)
MainWindow = MainWindow()
sys.exit(app.exec_())
第一行判斷式 __name__ 用於代表來源的名稱,
當自己為第一個執行的程式時,名稱就會變成__main__
因此就是判斷 整個程式的進入點如果是從自己開始,就執行程式。
app = QApplication(sys.argv)
新增一個Qt應用程式,管理所有的Qt物件資源
並且傳入sys.argv作為初始化資料
MainWindow = MainWindow()
新增一個MainWindow物件(QWidget物件)
sys.exit(app.exec_())
app.exec_() 進入QApplication程式,也就是說開始運行Qt GUI程式
當app.exec_()執行完畢時,關閉python。
以上就是這整個程式的解說,可以發現用Python寫Qt的視窗程式其實並不複雜
之後有時間將會繼續寫下去
如果有任何疑問或指教,歡迎底下回覆,謝謝。
註:
- self代表的是 MainWindow 這個Class,因為繼承至QWidget所以也代表Qwidget這個物件
- 每個Qt程式只會有一個 QApplication 作為管理所有Qt資源的管理程式
沒有留言:
張貼留言
對於文章內有任何問題,都可以提出來討論看看哦。