Вот что мне нужно сделать.
-Я получаю данные журнала через соединение udp
-Я складываю соответствующие данные в qlist
-У меня есть таймер, работающий в главном потоке, который по таймауту распаковывает эти данные, обновляет некоторые массивы, затем вызывает widget-> update
-Виджет повторно реализует paintEvent и использует эти массивы для рисования диаграмм.
Какой лучший способ сделать это, чтобы не было ошибок.
Эта задача состоит в основном из трех процессов, два из которых выполняются в основном потоке
1-У меня есть qthread, который запрашивает и получает журнал через пакеты udp. Этот поток также складывает данные в qlist.
2-У меня есть Qtimer, который по таймауту снимает с карты эти события, подготавливает массивы диаграммы и затем вызывает update
3-У меня есть переопределение метода paintEvent для этого виджета.
У меня есть мьютексы для синхронизации и защиты данных. Это плохой способ сделать это? Будем признательны за некоторые предложения относительно "БЕЗОПАСНОГО" способа ведения дел.
На заметке о том, что paintEvent - это не пользовательский виджет, который находится внутри моего главного окна. У меня есть второй поток (функция concurent), который периодически обновляет некоторые данные, а затем посылает сигнал для обновления полей меток, которые находятся за пределами пользовательского виджета, но внутри главного окна. может ли это иметь плохой побочный эффект на все?