当前位置:   article > 正文

第三节 PyQt5之——QObject对象(所有控件的基类)_pyqt5 qobject

pyqt5 qobject

在Qt中QObject是所有类的基类,换而言之是在Qt中所有的类均继承自QObject,这使得QObject中的所有方法在其他类中使用。所以学习QObject中的方法有其特殊的意义。

继承结构测试的方法

# 创建一个QObject对象
obj = QObject()
# 获得父类 
mros = QObject.mro()
for mro in mros:
    print(mro)
# <class 'PyQt5.QtCore.QObject'>
# <class 'sip.wrapper'>
# <class 'sip.simplewrapper'>
# <class 'object'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

对象名称、属性相关操作

# 创建一个QObject对象
obj = QObject()
# 设置对象名称
obj.setObjectName('new_object_name')
# 获取对象的名称
obj.objectName()
# 添加对象动态属性与值
obj.setProperty("property_name",value)
# 获得对象某一属性对应的值
obj.property("property_name")  # 将返回value
# 获取一个对象中通过setProperty()设置的所有属性名称
obj.dynamicPropertyNames()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

应用场景用于qss的ID选择器和属性选择器,同时可以应用于装饰墙的信号与槽;

父子对象操作

# 创建QObject对象
obj1 = QObject()
obj2 = QObject()
# 设置父对象,将obj1设置为obj2的父对象
print(obj1)		# return:<PyQt5.QtCore.QObject object at 0x000001CE6482EA68>
obj2.setParent(obj1)
# 获取父对象
obj2.parent()		# return:<PyQt5.QtCore.QObject object at 0x000001CE6482EA68>
# 获取所有直接子对象
print(obj2)		# return:<PyQt5.QtCore.QObject object at 0x0000024CA4F9EAF8>
obj1.children()		# return:[<PyQt5.QtCore.QObject object at 0x0000024CA4F9EAF8>]
# 获取某一个指定名称和类型的子对象
obj.findChild(参数1, 参数2, 参数3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/855570
推荐阅读
相关标签
  

闽ICP备14008679号