PyQt6每日一练,第五天,QObject信号与槽操作(23课)

    def QObject信号与槽操作(self):
        self.obj = QObject()
        # def destroy_cao(obj):
        #     print("对象被释放了", obj)
        # self.obj.destroyed.connect(destroy_cao)

        def obj_name_cao(name):
            print("对象名称发生了改变", name)

        def obj_name_cao2(name):
            print("对象名称发生了改变2", name)

        self.obj.objectNameChanged.connect(obj_name_cao)
        self.obj.setObjectName("xxx")

        self.obj.objectNameChanged.connect(obj_name_cao2)
        print(self.obj.receivers(self.obj.objectNameChanged))

        print(self.obj.signalsBlocked(),"1")
        self.obj.blockSignals(True)
        print(self.obj.signalsBlocked(),"2")

        # self.obj.objectNameChanged.disconnect()

        self.obj.setObjectName("ooo")
        self.obj.blockSignals(False)
        print(self.obj.signalsBlocked(),"3")

        self.obj.setObjectName("XXOO")

运行结果:

对象名称发生了改变 xxx
2
False 1
True 2
False 3
对象名称发生了改变 XXOO
对象名称发生了改变2 XXOO