Qobject
2019-11-21 本文已影响0人
2B铅笔芯
学习说明
Qobejct 这个类基本是所有控件的基类,所以先学习该控件的操作和对应的api,则在后续学习中就可以使用
API说明
setObjectName(str) 改变objectName
setProperty("属性名", 属性内容) 设置属性,用于后续的style修改
property("属性名") 查看该属性名下的属性内容
obj = QObject()
obj.setObjectName("毅爸爸加油")
print(obj.objectName())
obj.setProperty("one_test", "test_one")
obj.setProperty("two_test", 1)
print(obj.property("one_test"))
print(obj.dynamicPropertyNames())
objectNameChanged 信号量,用于objectName的改变
destroyed 信号量,用于对象毁坏时
信号量用.connect 和 .disconnect 可以分别进行连接和取消连接
blockSignals(True) 暂时阻止信号量的连接
sinalsBlocked() 参看是否有block 阻止连接
receivers(Object.signal)——>被连接数目 传入对象信号,参看被连接的数目
self.obj.destroyed.connect(lambda x:print("对象已经摧毁", x))
del self.obj
self.obj.objectNameChanged.connect(lambda x:print("对象名称已改为:", x))
self.obj.setObjectName("小明")
disconnect取消连接
self.obj.objectNameChanged.connect(lambda x:print("对象名称已改为:", x))
self.obj.setObjectName("小明")
self.obj.objectNameChanged.disconnect()
self.obj.setObjectName("小红")
暂时阻止连接
blockSignals
self.obj.objectNameChanged.connect(lambda x:print("对象名称已改为:", x))
self.obj.setObjectName("小明")
self.obj.blockSignals(True)
# 判断有没有阻止连接
print(self.obj.signalsBlocked())
self.obj.setObjectName("小蓝")
self.obj.blockSignals(False)
self.obj.setObjectName("小红")
# 查看该信号拥有连接数 需要传递对象
print(self.obj.receivers(self.obj.objectNameChanged))