[PySide6]主視窗


Posted by Yen on 2024-01-07

視窗類型

主視窗提供了一個應用程式框架,有著自己的版面配置,可以在版面上新增控制項,例如工具列、功能表或狀態列等等。

主視窗主要分成三種類型。

QWidget

QWidget是另外兩個主視窗類型的父類別,主要用於嵌入主視窗,也可以用於多視窗程式的子視窗,如果你的主視窗不需要工具列、功能表等等,那麼你可以用QWidget作為主視窗。

import sys
from PySide6.QtWidgets import QApplication, QWidget, QLabel

class Widget(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Yen.Studio")  # 設定主視窗標題
        self.resize(400, 300)  # 設定主視窗大小

        label = QLabel("Hello", self)  # 利用QLabel在視窗顯示文字

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = Widget()
    widget.show()
    sys.exit(app.exec())

QMainWindow

QMainWindow是繼承自QWidget的主視窗類型,它可以包含工具列、功能表等等的控制項,是最常見的主視窗類型。

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Yen.Studio") # 設定主視窗標題
        self.resize(400, 300) # 設定主視窗大小

        label = QLabel("Hello", self) # 利用QLabel在視窗顯示文字

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_win = MainWindow()
    main_win.show()
    sys.exit(app.exec())

QDialog

QDialog也是繼承自QWidget,它主要的用途在於與使用者進行對話與互動。

import sys
from PySide6.QtWidgets import QApplication, QDialog, QLabel

class Dialog(QDialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Yen.Studio")  # 設定主視窗標題
        self.resize(400, 300)  # 設定主視窗大小

        label = QLabel("Hello", self)  # 利用QLabel在視窗顯示文字

if __name__ == "__main__":
    app = QApplication(sys.argv)
    dialog = Dialog()
    dialog.show()
    sys.exit(app.exec())

如果讀者實際上去跑上面三段程式碼,會發現出來的視窗都長的一模一樣,這是因為我們還沒有加入每種主視窗類型的特色進去。下篇文章開始會從QMainWindow開始介紹,並介紹第一次的訊號和槽機制。


#Python #gui #pyside







Related Posts

JS-[核心篇]-JS引擎 與 運行環境

JS-[核心篇]-JS引擎 與 運行環境

SQL 合併&移動平均

SQL 合併&移動平均

前言&第一天記錄

前言&第一天記錄


Comments