python - 为什么 QTimer 在对象中不起作用?python PyQt
问题描述
我是 python 和 pyqt 的新手。我刚刚发现 QTimer 需要运行事件循环才能工作。
为什么这不起作用?
import PyQt5.QtCore
import sys
app = PyQt5.QtCore.QCoreApplication(sys.argv)
class Foo:
def __init__(self):
self.timer = PyQt5.QtCore.QTimer()
self.timer.timeout.connect(lambda: print("foo"))
self.timer.start(500)
Foo()
app.exec_()
另一方面,这很好用。
import PyQt5.QtCore
import sys
app = PyQt5.QtCore.QCoreApplication(sys.argv)
timer = PyQt5.QtCore.QTimer()
timer.timeout.connect(lambda: print("foo"))
timer.start(500)
app.exec_()
解决方案
创建类 foo = Foo() 的实例
Foo -> <class '__main__.Foo'>
foo -> <__main__.Foo object at 0x0000000002AD8A90>
import PyQt5.QtCore
import sys
app = PyQt5.QtCore.QCoreApplication(sys.argv)
class Foo:
def __init__(self):
self.timer = PyQt5.QtCore.QTimer()
self.timer.timeout.connect(lambda: print("foo"))
self.timer.start(500)
print(f'Foo -> {Foo}')
foo = Foo()
print(f'foo -> {foo}')
app.exec_()
推荐阅读
- c - 对结构列表进行冒泡排序
- python - 如何使用 qclipboard 为 nautilus 复制或剪切文件
- reverse-proxy - Traefik 反向代理到外部服务器
- python - python请求发布返回奇怪的字符
- python - Sklearn 用 StandardScaler 拟合 SVM
- android - 如何在android中忽略系统字体大小和字体样式
- node.js - updateOne 函数未更新文档
- azure - 创建新 Azure Cosmos DB 时缺少位置选项
- database - Neo4J(Cypher)中图形节点关系的最佳方法
- javascript - 尝试实现特定于 Django 模型属性的阅读更多按钮