Qobject

作者: 2B铅笔芯 | 来源:发表于2019-11-21 17:08 被阅读0次

    学习说明

    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))
    
    

    相关文章

      网友评论

          本文标题:Qobject

          本文链接:https://www.haomeiwen.com/subject/xbbtwctx.html