PySide6入门教程之六 | Main Window、Widge、Dtialog三大类型窗口的使用

在这里插入图片描述


前言

PySide6 是用于Python的一个跨平台GUI库,它提供了Qt框架的Python绑定。在PySide6中,QMainWindow,QWidget, 和 QDialog 都是非常常用的类,它们各自有特定的应用场景和功能。


🚀🚀🚀 Pyside6实战教程专栏目录入口:点击跳转


一、QMainWindow

QMainWindow 是一个主窗口类,通常用于创建应用程序的主要窗口。它包含了菜单栏工具栏状态栏以及一个中心区域。QMainWindow 提供了丰富的功能和灵活性,适用于那些需要复杂用户界面的应用程序。

在这里插入图片描述
特点

  • 可以包含菜单栏 (QMenuBar)、工具栏 (QToolBar) 和状态栏 (QStatusBar)
  • 中心区域可以设置一个中心部件 (setCentralWidget() 方法)
  • 支持多个视图 (通过 QSplitter 或 QTabWidget 实现)

创建方式

使用QT Designer创建Main Window
在这里插入图片描述
在这里插入图片描述
它分别QMenuBar(菜单栏)、QWidget(中央控件)、QStatusBar(状态栏)
在这里插入图片描述
也可以使用代码完成创建:

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


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
		self.setup_ui()

    def setup_ui(self):
        self.setWindowTitle("主窗口")
        self.setCentralWidget(QWidget())


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

二、QWidget

QWidget 是所有用户界面元素的基本类。它可以作为独立的窗口使用,也可以作为更复杂的控件的基类。QWidget 是一个非常基础的类,不包含任何预设的界面组件。

在这里插入图片描述
代码创建:

"""
Date: 2024-08-25 01:57:33
LastEditors: xujiayue0721
LastEditTime: 2024-08-25 01:57:36
"""

import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton


class SimpleWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Simple Window")

        layout = QVBoxLayout()
        button = QPushButton("Click me!")
        layout.addWidget(button)
        self.setLayout(layout)

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

三、QDialog

QDialog 是一个用于创建对话框的类。对话框通常是暂时性的,并且通常用来收集用户的信息或者确认一些动作。QDialog 通常有一个模态行为,即当对话框打开时,用户不能与主窗口交互,直到对话框关闭。

在这里插入图片描述
在这里插入图片描述
代码创建:

from PySide6.QtWidgets import QDialog, QApplication, QVBoxLayout, QPushButton, QDialogButtonBox

class Dialog(QDialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Dialog")

        # 创建布局
        layout = QVBoxLayout(self)

        # 添加操作按钮
        layout.addWidget(QPushButton("Do something"))

        # 创建并添加按钮框
        button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
        button_box.accepted.connect(self.accept)
        button_box.rejected.connect(self.reject)
        layout.addWidget(button_box)

if __name__ == "__main__":
    app = QApplication([])
    dialog = Dialog()
    result = dialog.exec()
    print("Dialog accepted" if result else "Dialog rejected")
    app.exec()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w94ghz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值