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