zoukankan      html  css  js  c++  java
  • QObject信号的操作

    from PyQt5.Qt import  *
    
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QObject的学习")
            self.resize(500, 500)
            self.setup_ui()
    
    
        def setup_ui(self):
            # self.QObject继承结构测试()
            # self.QObject对象名称和属性的操作()
            # self.QObject对象的父子关系操作()
            self.QObject信号的操作()
            #self.QObject类型判定()
        # self.QObject对象删除()
    
    
        def QObject信号的操作(self):
            self.obj = QObject()
            # obj.destroyed
            # obj.objectNameChanged
            # def destroy_cao(obj):
            #     print("对象被释放了", obj)
            #
            # self.obj.destroyed.connect(destroy_cao)
            #
            # del self.obj
            def obj_name_cao(name):
                print("对象名称发生了改变", name)
    
            def obj_name_cao2(name):
                print("对象名称发生了改变2", name)
    
            self.obj.objectNameChanged.connect(obj_name_cao)
            self.obj.objectNameChanged.connect(obj_name_cao2)
    
            # print(self.obj.receivers("objectNameChanged")) X
            print(self.obj.receivers(self.obj.objectNameChanged))
            self.obj.setObjectName("xxx")
    
            # self.obj.objectNameChanged.disconnect()
            # print(self.obj.signalsBlocked(), "1")
            # self.obj.blockSignals(True)
            # print(self.obj.signalsBlocked(), "2")
            # self.obj.setObjectName("ooo")
            #
            # self.obj.blockSignals(False)
            # print(self.obj.signalsBlocked(), "3")
            # # self.obj.objectNameChanged.connect(obj_name_cao)
            #
            # self.obj.setObjectName("xxoo")
    
            #*************信号与槽案例***************开始
            btn = QPushButton(self)
            btn.setText("点击我")
            def cao():
                print("点我嘎哈?")
    
            btn.clicked.connect(cao)
    
            # *************信号与槽案例***************结束
            pass
    
    
    if __name__ == '__main__':
        import sys
    
        app = QApplication(sys.argv)
    
        # QWidget控件的父子关系()
        window = Window()
        # window = QWidget()
    
        window.show()
    
        sys.exit(app.exec_())
  • 相关阅读:
    Blender 3DOne
    [翻译]XNA外文博客文章精选之sixteen(中)
    实习技术员的基本功(二)
    [翻译]XNA外文博客文章精选之fifteen
    实习技术员的基本功(三)
    [翻译]XNA外文博客文章精选之sixteen(下)
    实习技术员的基本功(一)
    [翻译]XNA外文博客文章精选之sixteen(上)
    思维导图
    MySQL error 1045(28000): Access denied for user ...
  • 原文地址:https://www.cnblogs.com/juham/p/13745840.html
Copyright © 2011-2022 走看看