PySide6 GUI 编程(2):窗口设置与基础控件
原创自定义窗口
代码示例
代码分析
自定义窗口类
上述代码中,
class MyMainWindow(QMainWindow):
定义了一个名为
MyMainWindow
的类,它继承自
QMainWindow
类。
QMainWindow
是Qt框架中用于创建和管理主窗口的一个类,这意味着
MyMainWindow
类将拥有
QMainWindow
的所有功能和属性。
这行代码调用了父类
QMainWindow
的构造函数,确保了父类被正确初始化。
super()
函数用于访问父类的方法和属性。
设置窗口标题
设置窗口标题:
self.setWindowTitle('My App Window 我的自定义窗口')
,这个标题会显示在窗口的标题栏上。
设置窗口提示信息
设置窗口的工具提示信息:
self.setToolTip('My App Tip Info 这是我的自定义窗口的提示信息')
,当用户将鼠标悬停在窗口上时,这个提示信息会显示为一个小型弹出窗口。
设置窗口固定大小
设置窗口固定大小:
self.setFixedSize(QSize(400, 300))
,使用 setFixedSize 方法设置窗口的固定大小,参数 QSize(400, 300) 指定了窗口的宽度为400像素,高度为300像素。这会禁止用户调整窗口大小,窗口大小将被锁定为指定的尺寸。
最终运行效果
基础控件
QPushButton
写法一
写法二
QPushButton
构造函数中的
self
参数是必需的,原因如下:
-
父对象引用:
self是MyPushButton类的实例引用,将其传递给QPushButton意味着正在创建一个子控件(按钮),它属于MyPushButton窗口。 -
内存管理:在Qt中,当
父对象被销毁时,其所有子对象也会自动被销毁。通过将self作为父对象传递给QPushButton,确保了按钮会被正确地管理,并且当MyPushButton窗口被销毁时,按钮也会随之销毁。 -
事件处理:
子控件通常会将事件(如鼠标点击、键盘输入等)传递给它们的父对象。通过指定self作为父对象,按钮能够将事件传递给MyPushButton类的实例,允许在类中处理这些事件。 -
布局管理:在Qt中,控件的布局是基于
父子关系来管理的。指定 self 作为父对象可以确保按钮被正确地放置在窗口内,并且可以利用布局管理器来自动调整按钮的位置和大小。 -
绘图和焦点:
父对象负责绘制其子对象,并且焦点策略也依赖于父子关系来确定焦点顺序。 因此,在MyPushButton类中创建一个QPushButton实例并将其添加到窗口时,传递self作为父对象是至关重要的,它确保了按钮能够正常工作并集成到窗口中。 如果不传递父对象,QPushButton将无法正确地与窗口交互,也无法利用Qt框架提供的各种功能。
QLabel
写法一
写法二
QLineEdit
写法一
写法二
对于 QLineEdit 设置标题时需要注意的点
对于以下代码: