QObject

QObject类中方法

  setObjectName("object name")  设置一个名称,一般这个名称是唯一的,当做对象的ID来使用

  objectName()
    获取对象的名称

  setProperty("property_name","property_value")
    动态添加一个属性与值
  property("property_name")
    获取一个属性的值
  dynamicPropertyNames()
    获取一个对象中所有通过setProperty()设置的属性名称

使用示例

from PyQt5.Qt import  *

obj = QObject()
obj.setObjectName("notice") #给一个Qt对象设置名字为notice
print(obj.objectName()) #输出:notice

obj.setProperty("property01","value01")#给Qt对象动态两个属性和其对应值
obj.setProperty("property02","value02")
print(obj.property("property02")) #输出:value02
print(obj.dynamicPropertyNames())
#输出:[PyQt5.QtCore.QByteArray(b'property01'), PyQt5.QtCore.QByteArray(b'property02')]
QObject定时器的使用方法、原理及示例如下: - **使用方法**:QObject定时器主要通过实例化重写`timerEvent`时间事件来使用。通常无需进行`connect`操作(除非自定义信号),它一般作为基,用于管理对象生命周期。可通过`startTimer`方法启动定时器,通过`killTimer`方法停止定时器 [^1][^2][^3]。 - **原理**:当定时器触发时,应用程序会发送一个`QTimerEvent`。在事件循环中,处理器按照事件队列的顺序来处理定时器事件。不过,当处理器正忙于其它事件处理时,定时器事件就不能立即处理 [^1]。 - **示例**:以下是一个使用QObject定时器的Python示例代码: ```python from PyQt5.Qt import * import sys class MyLabel(QLabel): def __init__(self, *args, **kwargs): # 封装一个控件 super().__init__(*args, **kwargs) self.setText("10") self.move(200, 200) self.setStyleSheet("font-size:22px;") def setSec(self, sec): self.setText(str(sec)) def startMyTimer(self, ms): self.timer_id = self.startTimer(ms) def timerEvent(self, *args, **kwargs): # 获取当前标签的内容 current_sec = int(self.text()) current_sec -= 1 self.setText(str(current_sec)) if current_sec == 0: print("stop!") self.killTimer(self.timer_id) app = QApplication(sys.argv) window = QWidget() # 创建一个窗口 window.setWindowTitle("QObject定时器的使用") # 窗口标题 window.resize(500, 500) # 设置窗口大小 window.move(400, 200) # 将窗口移动到电脑显示屏的一个位置 label = MyLabel(window) label.setSec(5) label.startMyTimer(500) window.show() # 展示窗口 sys.exit(app.exec_()) # app.exec_()为执行整个应用程序,为了告诉我们程序的退出,我们需要用sys.exit() ``` 该示例代码创建了一个`MyLabel`,继承自`QLabel`,在`MyLabel`中重写了`timerEvent`方法,在`timerEvent`方法中实现了倒计时的逻辑。在主程序中,创建了一个`MyLabel`对象,并启动了定时器,定时器每隔500毫秒触发一次`timerEvent`方法 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值