Почему QTimer не работает в объекте? python PyQt - PullRequest
1 голос
/ 10 апреля 2020

Я новичок в python и pyqt. Я только что понял, что для работы QTimer требуется eventl oop.

Почему это не работает?

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_()

1 Ответ

0 голосов
/ 10 апреля 2020

Создать экземпляр класса 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_()
...