Работа с потоками в разных версиях Qt
Добрый день,
впервые начал проект в котором активно используются потоки и наткнулся на один не очень приятный момент, например:
Существует главный поток (GUI) и созданный поток. Связь между потоками осуществляется с помощью сигналов и слотов.
Так вот, когда основной поток (GUI) принимает данные из потока и отображает их, наводим курсор мышки на какой-нибудь виждет с установленной для него подсказкой (setToolTip), основной поток останавливает обновление GUI и активно начинает выводить подсказку. После вывода подсказки продолжает обновление GUI (при этом поток продолжал работать и данные далее отображаются корректно). Данный эффект замечен не только с подсказкой, но и при наведение на элементы меню.
Данный эффект сильно проявляется в версии Qt 5.14.2 для Windows (в которой я и начал делать свой проект). В версии 5.12.10 для Windows проявляется в значительно меньшей степени. В Linux данный эффект не проявляется в обоих версиях.
Также для нормализации работы потоков в версии 5.14.2 требуется чаще использовать QCoreApplication::processEvents(). Видимо какие-то проблемы с обработкой очереди событий.
Я взял пример из книги Шлее Qt 5.10 и слегка модифицировал, чтобы было видно данный эффект (см.вложение). Эффект хорошо виден в версии 5.14.2, в версии 5.12.10 виден только один раз при первом появлении подсказки. Т.е. проблема оказалась не в моём коде.
Может кто сталкивался с подобным? Как можно это обойти? Какая версия Qt наиболее стабильная на сегодняшний день? Может как вариант создавать свои виджеты, а не использовать существующие (но это вроде не логично)?
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10