PySide6布局管理学习笔记(二)

使用Python+Pyside6库开发GUI,在继承QMainWindow类的主窗口上,和继承QWidget类的主窗口上,添加一个布局管理器的是不同的。

继承QMainWindow类的窗口通常用于创建具有菜单栏、工具栏和状态栏的主窗口应用程序。它提供了更多的功能和灵活性,但在添加布局管理器时需要使用中央窗口部件(central widget)。

以下是使用QMainWindow和布局管理器的基本步骤:

  1. 创建一个继承自QMainWindow的类。
  2. 在类的初始化方法中,创建一个中央窗口部件(通常是QWidget类型)。
  3. 创建一个布局管理器(例如QVBoxLayoutQHBoxLayout等),并将其设置为中央窗口部件的布局。
  4. 添加所需的控件到布局管理器中。
  5. 将中央窗口部件设置为主窗口的中央窗口部件。

下面是一个简单的示例代码:

import sys
from PySide6.QtWidgets import QMainWindow, QWidget, QVBoxLayout, QPushButton  
  
class myMainWindow(QMainWindow):  
    def __init__(self):  
        super().__init__()  
  
        # 创建中央窗口部件  
        central_widget = QWidget()  
  
        # 创建布局管理器  
        layout = QVBoxLayout()  
  
        # 添加控件到布局管理器中  
        button = QPushButton("单击我")  
        layout.addWidget(button)  
  
        # 将布局管理器设置为中央窗口部件的布局  
        central_widget.setLayout(layout)  
  
        # 将中央窗口部件设置为主窗口的中央窗口部件  
        self.setCentralWidget(central_widget)


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

可以这样理解,继承QMainWindow类的对象窗口,本身就有一个布局管理器,管理菜单,工具栏,还有状态栏等布局控件,同时有一个中央窗口部件的布局,所以再新增的布局对象(比如水平及垂直或网格等布局管理对象),不能直接添加到主窗口(主窗口不能成为新增加的布局管理对象的父类),只能添加到主窗口的中央窗口部件中。

与之相比,当你继承QWidget类时,你直接在该窗口上添加布局管理器,而不需要创建中央窗口部件。QWidget通常用于创建简单的对话框或没有菜单栏和工具栏的窗口。

以下是使用QWidget和布局管理器的基本步骤:

  1. 创建一个继承自QWidget的类。
  2. 在类的初始化方法中,创建一个布局管理器(例如QVBoxLayoutQHBoxLayout等)。
  3. 添加所需的控件到布局管理器中。
  4. 将布局管理器设置为窗口的布局。

下面是一个简单的示例代码:

import sys
from PySide6.QtWidgets import QWidget, QVBoxLayout, QPushButton  
  
class MyWidget(QWidget):  
    def __init__(self):  
        super().__init__()  
  
        # 创建布局管理器  
        layout = QVBoxLayout()  
  
        # 添加控件到布局管理器中  
        button = QPushButton("单击我")  
        layout.addWidget(button)  
  
        # 将布局管理器设置为窗口的布局  
        self.setLayout(layout)


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值