Почему QTimer не сигнализирует?

У меня есть простая установка, где мне нужен QTimer для обновления метки. Все в порядке, за исключением того, что событие никогда не происходит, и код QTimer просматривается.

def init_ui(self):
    self.sell_label = QLabel("Sale: " + str(self.bid))
    self.sell_label.setAlignment(Qt.AlignCenter)
    self.layout.addWidget(self.sell_label,7,9) 

    self.show()

    timer = QTimer()
    timer.timeout.connect(self.update_attrib) 
    timer.start(10000)         

def update_attrib(self):
    self.sell_label.setText("Sale" + " $100")
    self.sell_label.update()

person Sleepy-Z    schedule 21.09.2017    source источник


Ответы (1)


Проблема в вашем случае в том, что у таймера нет отца, поэтому его устранит сборщик мусора, перед которым проще всего передать родителя, в данном случае self.

timer = QTimer(self)

Или сделайте его членом класса:

self.timer = QTimer()

Примечание. Вам не нужно использовать update()

person eyllanesc    schedule 21.09.2017
comment
Спасибо. В этом была проблема. - person Sleepy-Z; 21.09.2017