【Python GUI编程系列 02】PySide6窗口的运行机理

  • 一、关于QWidget窗口
  • 二、QWidget窗口的初始化类
  • 三、QWidget窗口的创建


一、关于QWidget窗口

GUI编程是指通过图形化界面来进行程序开发的方法,旨在提供更加直观、易用的交互方式。QWidget是Qt框架中提供的一个基础组件,用于构建GUI界面的基本元素,如窗口、按钮、标签等等。
因此,QWidget可以看作是GUI编程的基础元素,是构建GUI应用程序的重要组成部分。在Qt中,采用了面向对象的编程方法,将QWidget封装成一个类,开发者可以对其进行继承、重载等操作,以实现自定义的GUI界面组件。
相应地,GUI编程和QWidget之间的联系在于,QWidget提供了实现GUI界面的基础元素,而GUI编程则是基于这些元素进行开发的方法。同时,QWidget也是Qt框架中的一个重要组成部分,被广泛应用于Qt程序的开发中。而在区别上,GUI编程更加广泛地涵盖了各种GUI开发方法,包括传统的窗口应用程序、Web应用程序、移动应用程序等等,而QWidget则更加专注于Qt框架中的GUI界面开发。
QWidget是Qt框架中最基本的GUI类之一,用于创建用户界面的窗口类。它是所有Qt用户界面中可视对象的父类,包括按钮、标签、滑块条等等。QWidget是一个抽象类,不能被实例化,需要通过继承它来创建自定义的窗口界面

QWidget提供了一系列用于管理窗口大小、位置和布局的函数,可以设置窗口标题、图标、背景、字体等属性。在QWidget中,还可以使用事件处理机制来响应用户的输入和操作,例如鼠标点击、键盘输入等。

此外,QWidget还可以嵌套子窗口和子控件,通过布局管理器来控制它们的位置和大小。布局管理器是Qt框架中提供的一种自动化布局方式,将不同的控件放置到一个父控件中,使它们能够自适应大小和位置,提高用户界面的灵活性和可维护性。

总之,QWidget是Qt框架中非常重要的一部分,对于开发Qt应用程序非常有用。

二、QWidget窗口的初始化类

QWidget类是所有用户界面类的基类,具有许多常用的属性和方法,如窗口标题、尺寸、位置、背景色等。因此,在创建窗口时,通常会从QWidget类派生出新的子类,然后添加所需的其他属性和方法。

以下是QWidget类的一些常用的初始化类:

  1. QWidget(parent=None, flags=Qt.WindowFlags)
  • 参数parent是指定该窗口的父窗口,默认为None,表示该窗口没有父窗口。
  • 参数flags是指定该窗口的标志,例如是否显示在任务栏中、是否具有最大化和最小化按钮等。默认为Qt.WindowFlags。
  1. QMainWindow(parent=None, flags=Qt.WindowFlags)
  • QMainWindow是从QWidget派生出的一个更具体的窗口类型,包含主工具栏、状态栏、菜单栏等。
  • 参数parent和flags都与QWidget类一样,不再赘述。
  1. QDialog(parent=None, flags=Qt.WindowFlags)
  • QDialog是从QWidget派生出的一个对话框类型,通常用于显示提示信息、警告或错误等。
  • 参数parent和flags同样与QWidget类一致。

例如,以下代码创建了一个简单的QWidget窗口:

> import sys
>  from Pyside6.QtWidgets import QApplication, QWidget
> 
> class MyWindow(QWidget):
>     def __init__(self):
>         super().__init__()
>         self.setWindowTitle('My Window')
>         self.setGeometry(100, 100, 300, 200)
>         self.setStyleSheet('background-color: gray;')
>         self.show()
> 
> if __name__ == '__main__':
>     app = QApplication(sys.argv)
>     window = MyWindow()
>     sys.exit(app.exec_())

在该代码中,MyWindow类继承自QWidget类,通过super().init()调用QWidget类的构造函数进行初始化。在构造函数中,设置了窗口标题、位置、尺寸和背景色,并显示窗口。最后通过QApplication类的exec_()方法启动应用程序。

三、QWidget窗口的创建

在 PySide6 中创建 QWidget 窗口可以按照以下步骤进行:

  1. 导入 PySide6.QtWidgets 模块并创建 QApplication 实例。
from PySide6.QtWidgets import QApplication, QWidget

app = QApplication([])
  1. 创建 QWidget 实例,并设置窗口属性,例如标题、大小、位置等。
widget = QWidget()
widget.setWindowTitle('My Window')
widget.setGeometry(100, 100, 400, 300)
  1. 显示窗口。
widget.show()
  1. 运行应用程序的主事件循环。
app.exec()

完整的代码如下所示:

from PySide6.QtWidgets import QApplication, QWidget

app = QApplication([])

widget = QWidget()
widget.setWindowTitle('My Window')
widget.setGeometry(100, 100, 400, 300)

widget.show()

app.exec()