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