1、介绍
QWidget是几乎所有pyqt显示用组件的直接或间接父类,其声明的属性和方法很具有代表性。
QWidget既可以是窗口组件,独立显示,可以容纳其他组件。也可以是一般组件,被其他组件容纳。
常用的窗口组件包括QWidget、QMainWindow和QDialog。其它组件继承QWidget,也能够作为窗口独立存在,但是一般不会使用。
- QWidget作为最简单的组件,被广泛使用
- QMainWindow相比于其他窗口组件,可以设置窗口的菜单栏
- QDialog用于对话框
2、类和初始化
class QWidget(__PyQt5_QtCore.QObject, __PyQt5_QtGui.QPaintDevice):
def __init__(self, parent=None, flags, Qt_WindowFlags=None, Qt_WindowType=None, *args, **kwargs):
pass
3、一般方法
3.1 窗口、窗口标题和窗标
(1)window
- 返回当前组件的窗口对象,如果本身就是窗口,则返回本身对象
- 比如QMainWindow对象调用该对象,返回类型即QMainWindow
(2)setWindowTitle
- 设置窗口标题,参数为str类型
(3)windowTitle
- 获取窗口标题,返回类型为str类型。
- 如果没有个性设置,QMainWindow的默认窗口标题就为MainWindow
(4)setWindowIcon
setWindowIcon(self, QIcon)
- 设置窗口图标,参数类型是QIcon
- 注意这里QIcon类型对象的创建可能存在问题,加载崩溃,待解决?
(5)windowIcon
- 返回窗口图标,PyQt5.QtGui.QIcon类型
- 如果没有手动设置,则会返回默认的窗口图标,而非None
3.2 其它
(1)setToolTip
- 设置工具提示文本,参数为str
- 一般组件设置后,将鼠标放到组件上,会提示设置的文本。经测试,QMainWindow对象可以设置和获取tooltip,但是不会显示
(2)toolTip
- 获取工具提示文本,返回类型为str
4、事件
# 右键菜单
customContextMenuRequested(self, pos: QPoint) [signal]
# 窗口图标改变
windowIconChanged(self, icon: QIcon) [signal]
# 窗口图标文本改变
windowIconTextChanged(self, iconText: str) [signal]
# 窗口标题改变
windowTitleChanged(self, title: str) [signal]
- QWidget有且只有这四个事件,值得注意的是,clicked点击事件并不在其中
5、直接的窗口
QWidget可以直接创建,作为主窗口,其没有菜单栏和工具栏。