|
5 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 26
|
|||||||||||
Зависают виджеты созданные библиотекой PyQt5 при использовании многопоточной библиотеки QThread04.08.2021, 21:10. Показов 3164. Ответов 5
Метки нет (Все метки)
Уважаемые знатоки. Проблема следующая.
Написал простенькую программу которая принимает данные извне. В данную программу в любой момент времени приходят данные (целочисленные значения типа Int). В моём коде для наглядной иллюстрации приход данных имитируется функцией (make_data) Main класса. Данная функция запускается вторым потоком из класса DataMaker путем нажатия на кнопку Start. После нажатия кнопки в программу раз в 1 секунду начинает приходить список из четырёх числе (10, 20, 11, 21). Проходимся по данному списку через цикл for и определяем переменные index и key. Index это первая цифра числа, а key это вторая цифра. Если вторая (key) цифра равна нулю, то изменяем цвет лейбла (mark_0 или mark_1) на зеленый в зависимости от того какая (index) цифра была первой (1 или 2) при помощи метода (activate_mark) Если же вторая (key) цифра была 1, то добавляем к значению списка self.result_list[index] единицу и при помощи метода insetr_in_winget отражаем значение из списка в одном из (point_0 или point_1). Далее также зажигаем зеленом нужный из (mark_0 или mark_1) при помощи метода (activate_mark). Далее создается новый поток при помощи метода (deactivate_mark) и снова меняет цвет (mark_0 или mark_1) на красный. Тем самым программа показывает исправный прием данных. Также кнопками Clear можно обнулить значения в result_list, а кнопкой Stop остановить прием данных. Суть проблемы следующая. Если дать программе немного поработать, то визуализация зависнет т.е. значения в (point_0 или point_1) и (mark_0 или mark_1) перестанут обновляться. Причем в консоль данные при помощи функции print выводиться не перестанут, а значит второй поток исправно работает и значения приходят При нажатии на любую их кнопок Clear в одной графе все обнуляется, а во второй значения начисляются сразу за все пропущенное время. Т.е. если программа зависля на 100 очках в виджетах point и простояла 10 секунд. Я нажимаю на кнопку Clear и в одной графе все очищается, а во вторую начисляются те 10 секунд простоя, что программа не работала. Помогите, никак не могу побороть данную проблему. Код Xml и самой программы прилагается. main.py:
0
|
|||||||||||
| 04.08.2021, 21:10 | |
|
Ответы с готовыми решениями:
5
QT: лаги программы при использовании QVector<QThread> PyQt5 QThread Ошибка при установке библиотеки pyqt5-tools |
| 04.08.2021, 22:51 | |
|
Как интересно! Вот буквально позавчера была тема Отображение главного окна программы | QThread просто близнец поднятой Вами. И Вас тоже не остановило прямое указание в документации Qt, что GUI исполняется исключительно в главном потоке, иначе называемом GUI-потоком. Фантастика!
Добавлено через 3 минуты И вот эта тоже позавчера была Не до конца закрывается программа с бесконечным циклом while Как-то кучно пошло. Добавлено через 19 минут И тут https://doc.qt.io/qt-5/threads-technologies.html тоже вроде бы ясно расписаны пределы применимости разных вариантов использования QThread и способ получения данных от QThread.
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
||||||
| 06.08.2021, 10:39 | ||||||
Сообщение было отмечено Удалов Павел как решение
Решение
3
|
||||||
|
5 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 26
|
|
| 08.08.2021, 13:28 [ТС] | |
|
Спасибо большое, kapbepucm. Решение крылось в сигналах и слотах.
0
|
|
| 08.08.2021, 13:28 | |
|
Помогаю со студенческими работами здесь
6
Добрый день, возникла проблема: при попытке импортировать из библиотеки PyQt5! Проблема с библиотекой PyQT5 Ошибка при использовании библиотеки Почему при нажатии кнопки при использовании библиотеки createjs функция запускается несколько раз? Ошибка при использовании библиотеки getch Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 07.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|