赞
踩
from PyQt5.QtCore import QObject
# 创建一个QObject对象
obj = QObject()
# 获得父类
mros = QObject.mro()
for mro in mros:
print(mro)
# 结果如下:
# <class 'PyQt5.QtCore.QObject'>
# <class 'sip.wrapper'>
# <class 'sip.simplewrapper'>
# <class 'object'>
from PyQt5.QtCore import QObject
# 创建一个QObject对象
obj = QObject()
# 设置对象名称
obj.setObjectName("new_object_name")
# 获取对象名称
obj.objectName()
# 添加对象动态属性与值
obj.setProperty("property_name", value)
# 获得对象某一属性对应的值
obj.property("property") # 将返回value
# 获取一个对象中通过setProperty()设置的所有属性名称
obj.dynamicPropertyNames()
obj.setObjectName('new_object_name')
obj.objectName()
obj.setProperty("property_name",value)
obj.property("property_name") # 将返回value
obj.dynamicPropertyNames()
# 创建QObject对象
obj1 = QObject()
obj2 = QObject()
# 设置父对象,将obj1设置为obj2的父对象
print(obj1) # return:<PyQt5.QtCore.QObject object at 0x000001CE6482EA68>
obj2.setParent(obj1)
# 获取父对象
obj2.parent() # return:<PyQt5.QtCore.QObject object at 0x000001CE6482EA68>
# 获取所有直接子对象
print(obj2) # return:<PyQt5.QtCore.QObject object at 0x0000024CA4F9EAF8>
obj1.children() # return:[<PyQt5.QtCore.QObject object at 0x0000024CA4F9EAF8>]
# 获取某一个指定名称和类型的子对象
obj.findChild(参数1, 参数2, 参数3)
# 获取某多个指定名称和类型的子对象
objfindChildren(参数1, 参数2, 参数3)
# 基本语法
widget.信号.connect(槽函数)
from PyQt5.QtCore import QObject from PyQt5.QtWidgets import QApplication, QWidget import sys class Test_slot(QWidget): def __init__(self): super().__init__() # 创建一个QObject对象 self.initUI() def initUI(self): # 创建QObject对象 obj = QObject() obj.destroyed.connect(self.slot_fun) self.show() # 定义一个槽函数 def slot_fun(self): print("aaaa") if __name__ == "__main__": app = QApplication(sys.argv) test = Test_slot() sys.exit(app.exec_())
from PyQt5.QtCore import QObject from PyQt5.QtWidgets import QApplication, QWidget import sys class Test_slot(QWidget): def __init__(self): super().__init__() # 创建一个QObject对象 self.initUI() def initUI(self): # 创建QObject对象 obj = QObject() # 设置一个对象名,也可以不设置 obj.setObjectName("init_object_name") obj.objectNameChanged.connect(self.slot_fun) # 改变对象名 obj.setObjectName("new_object_name") self.show() # 定义一个槽函数 def slot_fun(self, return_value): print("对象名称改变了", return_value) if __name__ == "__main__": app = QApplication(sys.argv) test = Test_slot() sys.exit(app.exec_())
obj = QObject()
obj.信号.connect(槽函数)
obj.信号.disconnect()
obj.blockSignals(True/False) # True为临时阻断;False为重新连接
obj.signalsBlock() # 返回bool值
obj.receivers(obj.信号) # 注意传入的应该是一个pyqt的信号
# 创建几个对象
obj = QObject()
win = QWidget()
btn = QPushButton()
lab = QLable()
# 判断某一对象是否是一个控件
isWidgetType(obj) # False
isWidgetType(win) # True
isWidgetType(btn) # True
isWidgetType(lab) # True
obj.inherits(父类)
import sys from PyQt5.Qt import * # 重写QApplication里面的notify方法 class App(QApplication): def notify(self, receiver, evt): # 过滤接受器和消息类型 if receiver.inherits("QPushButton") and evt.type() == QEvent.MouseButtonPress: print(receiver, evt) return super().notify(receiver, evt) # 事件会分发给receiver的event()方法,同样我们也也可以改写receiver里面的event方法 class Btn(QPushButton): def event(self, evt): print(evt) return super().event(evt) # 创建一个应用程序 app = App(sys.argv) # 控件操作,包括控件的创建、设置、添加子控件等等 window = QWidget() btn = Btn(window) btn.setText('button') btn.move(100, 100) # 创建槽函数 def slot_fun(): print('按钮被点击了') # 创建信号连接机制 btn.pressed.connect(slot_fun) # 开始执行应用程序,并进入消息循环 window.show() sys.exit(app.exec_())
# 开启一个计时器,返回一个定时器标识符(time_id)可以用这个time_id关闭定时器
startTimer(ms, Qt.TimerType)
# 定时器执行时间
timerEvent()
# 根据定时器ID,杀死定时器
killTimer(timer_id)
# 主要包含了我们常用的一些类,汇总到了一块 from PyQt5.Qt import * import sys # 重写QObject对象 class MyObject(QObject): def timerEvent(self, evt): print(evt) # 创建一个应用程序对象 app = QApplication(sys.argv) # 3、控件的操作 # 3.1、创建控件 window = QWidget() # 创建一个主程序框 obj = MyObject() # 开启一个定时器 timer_id = obj.startTimer(1000) # 3.2、设置控件 window.setWindowTitle('') window.resize(500, 500) # 3.3、展示控件 window.show() # 4、应用程序的执行、进入消息循环。使整个程序进入无限循环 sys.exit(app.exec_())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。