为什么 QTimer 在对象中不起作用? python PyQt
Why QTimer doesn't work in a object? python PyQt
我是 python 和 pyqt 的新手。我刚刚发现 QTimer 需要 eventloop 运行 工作。
为什么这行不通?
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_()
创建 class 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_()
我是 python 和 pyqt 的新手。我刚刚发现 QTimer 需要 eventloop 运行 工作。
为什么这行不通?
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_()
创建 class 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_()