- 继承关系
- 不同的控件有:
- 相同的共性:名字、矩形区域、位置、大小、可以设置样式...
- 不同的特性:展示内容、接收输入、用户交互、容器、框架...
- 从上图列出的所有基类可以看到,QObject 是所有的 Qt 对象的基类
print(QObject.__subclasses__())
- 通过上面的代码可以查看QObject的所有子类
- QObejct 的父类是什么呢?这就需要用到 mro
mro:Method Resolution Order,方法解析顺序,可以打印出来类的继承顺序
- 示例
from PyQt5.Qt import * pmros=QObject.mro() for mro in pmros: print(mro)
- 输出结果
<class 'PyQt5.QtCore.QObject'> <class 'sip.wrapper'> <class 'sip.simplewrapper'> <class 'object'>
- 运行结果:可以看到Qobject(pyqt 的基类)也是继承自 object (python 的基类)
继承关系
- 父子继承关系,我们将所有子类相同的特性都写到父类中,子类中分别写入各自不同的特性
- 那么,我们在学习对象的时候,就可以先学顶层对象QObject(先学所有对象的共有属性方法),再学次顶层对象QWidget(学习所有控件的共有属性和方法),最后单独学习每一个对象(学习各个对象独有属性和方法)