from datetime import datetimefrom PySide6.QtCore import QObject, Signal, Slot, Property, QTimerclass QmlTest(QObject):textChanged = Signal()def __init__(self, context=None, name="QmlTest"):super().__init__()self._text = "127.0.0.1"# 如果有传 context 就自动注册到 QMLif context is not None:context.setContextProperty(name, self)# 启动定时器self.timer = QTimer(self)self.timer.timeout.connect(self.refresh)self.timer.start(500) # 每 2000 毫秒调用一次 refreshdef getText(self):return self._textdef setText(self, value):if self._text != value:self._text = valueself.textChanged.emit()@Slot()def refresh(self):# logger.info("刷新被 QML 调用 或 定时器调用")self.setText(f"更新时间: {self._currentTimeString()}")@Slot()def stopRefresh(self):self.timer.stop()@Slot()def startRefresh(self):self.timer.start(500)def _currentTimeString(self):return datetime.now().strftime("%H:%M:%S")text = Property(str, getText, setText, notify=textChanged)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。