Day 1:打造你的第一個視窗 (The Skeleton)
首先,請確保你的環境已經安裝了 PySide6:
pip install PySide6在開始寫程式碼之前,我們先建立一個重要的觀念。每一個 Qt 程式(GUI)運作時,背後都需要有一個「無限迴圈」在監聽使用者的動作(滑鼠點擊、鍵盤輸入)。
為了達成這個目的,我們通常需要兩個核心元件:
- QApplication:它是程式的「大腦」,負責管理那個無限迴圈和系統設定。
- 視窗 (Window):它是程式的「臉」,使用者看到的介面。

🛠️ Day 1:寫下你的第一段 GUI 程式碼
現在,我們來看看 PySide6 的標準起手式。這段程式碼是所有 Qt 程式的骨架。
請看下面這段程式碼,這裡面藏了一個物件導向繼承時常見的「小陷阱」:
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
# 🛑 這裡少了一行非常重要的程式碼!
self.setWindowTitle("我的第一個 App") # 設定視窗標題
self.setFixedSize(400, 300) # 設定視窗大小
# --- 程式進入點 ---
app = QApplication(sys.argv) # 1. 建立應用程式 (大腦)
window = MainWindow() # 2. 建立視窗實體 (臉)
window.show() # 3. 讓視窗顯示出來 (預設是隱藏的)
app.exec() # 4. 啟動無限迴圈 (Event Loop)
請問在__init__方法中,在我們設定標題之前,必須先呼叫哪一行程式碼,才能確保父類別QMainWindow的功能被正確初始化?
沒錯!正是 super()。
更精確地說,是 super().__init__()。這行程式碼會呼叫父類別 (QMainWindow) 的建構函式,讓 Qt 幫我們把視窗底層的所有線路都接好。如果少了它,程式會因為找不到視窗的基礎設定而直接閃退。
完整的起手式如下:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__() # ✅ 關鍵的一行:初始化父類別
self.setWindowTitle("我的第一個 App")
self.setFixedSize(400, 300)












