Промаргивают кнопки в PyQt при работе с потоками
Всем доброго времени суток, требуется помощь в настройке проекта на PyQt. Сам проект выполняет подключение к PLC с помощью библиотеки snap7. На форме созданы QPushButton. Имеется функция, которая считывает с контроллера область памяти db, и в зависимости от значения в этой области памяти (1 или 0) должна менять цвет кнопки. Функция должна работать в бесконечном потоке при запуске приложения, с помощью встроенного класса QThread. При работе с одной кнопкой (одно условие if) - проблем не возникает. При добавлении остальных - начинаются периодические промаргивания кнопки другим цветом (базовым цветом кнопки на форме Qt Designer). Подскажите, в чем может быть проблема таких промаргиваний?
Класс Qthread:
class Parse_DB_keyboard(QThread):
def __init__(self, mainwindow, parrent=None):
super().__init__()
self.mainwindow = mainwindow
def run(self):
while True:
data_db = self.mainwindow.conn_read.db_read(2, 5, 5)
if send_to_PLC.parse_btn(data_db, 5, 1):
self.mainwindow.btn_auto_start_keyRow5Number1.setStyleSheet('QPushButton {background: rgba(60,160,100,150);}')
else:
self.mainwindow.btn_auto_start_keyRow5Number1.setStyleSheet('QPushButton {background-color: transparent;}')
if send_to_PLC.parse_btn(data_db, 4, 1):
self.mainwindow.btn_auto_keyRow4Number1.setStyleSheet('QPushButton {background: rgba(60,160,100,150);}')
else:
self.mainwindow.btn_auto_keyRow4Number1.setStyleSheet('QPushButton {background-color: transparent;}')
if send_to_PLC.parse_btn(data_db, 5, 3):
self.mainwindow.btn_all_rt_groups_keyRow5Number3.setStyleSheet('QPushButton {background: rgba(60,160,100,150);}')
else:
self.mainwindow.btn_all_rt_groups_keyRow5Number3.setStyleSheet('QPushButton {background-color: transparent;}')
time.sleep(1)
Класс основного приложения:
class Ui(QtWidgets.QMainWindow):
def __init__(self):
super(Ui, self).__init__()
# кнопки
self.btn_auto_start_keyRow5Number1 = None
self.btn_auto_keyRow4Number1 = None
self.btn_all_rt_groups_keyRow5Number3 = None
self.btn_liftting_up_keyRow4Number4 = None
self.btn_lower_down_keyRow4Number5 = None
self.btn_group_sel_2_keyRow5Number7 = None
self.btn_group_sel_1_keyRow2Number1 = None
self.conn_write = None
self.conn_read = None
self.layout = configuration.layout
# вызов инициализаторов
self.init_keyboard()
self.init_button()
self.Thread_write_db = Parse_DB_keyboard(mainwindow=self)
self.Thread_write_db.start()
# вызов основного окна
self.show()

