22 lines
970 B
Python
22 lines
970 B
Python
from PyQt6.QtCore import pyqtSignal, QObject, QTimer
|
||
from logger import logger
|
||
|
||
class Observable(QObject):
|
||
value_changed = pyqtSignal(object) # Сигнал с переданным значением
|
||
|
||
def __init__(self, func, interval=1000):
|
||
super().__init__()
|
||
self.get_dynamic_value = func
|
||
self._value = None
|
||
|
||
# Таймер для периодической проверки значения
|
||
self.timer = QTimer(self)
|
||
self.timer.timeout.connect(self.check_function) # Вызываем some_function на каждом таймере
|
||
self.timer.start(interval) # Интервал в миллисекундах
|
||
|
||
def check_function(self):
|
||
# Пример функции, которая обновляет значение
|
||
new_value = self.get_dynamic_value()
|
||
if new_value != self._value:
|
||
self._value = new_value
|
||
self.value_changed.emit(new_value) |