Как я понял в qt основной цикл событий начинается после
int QApplication::exec()
соответственно QMainWindow.show()
открывает окно только после того как выполнение всех задач после этого прекращается и QApplication
возвращает число из exec()
.
В обход этому в документации написано что можно использовать таймер с нулевым таймаутом что бы реализовать выполнение какого либо функционала после открытия окна.
To make your application perform idle processing, i.e., executing a special function whenever there are no pending events, use a QTimer with 0 timeout. More advanced idle processing schemes can be achieved using processEvents().
Проверил точкой остановой - все верно: app.exec()
запускается перед функцией-слотом в таймере как и должно быть.
И все равно если после открытия окна к нему идет беспрерывное обращение (допустим бесконечный вывод в QPlainTextEdit какой-нибудь строки), то окно тупо не открывается, а сидит в доке свернутое. Если же на форму повесить кнопку при нажатии к которой происходит аналогичное обращение к любому виджету через while (true){...}
то форма намертво зависает. Как избежать подобного и подружить GUI с любой нагрузкой, ну и если ProcessEvent
в этом поможет, то объясните пожалуйста как его применить.
Цель: допустим в качестве приложения у меня консоль где бесконечно что то может выводиться и мне нужно видеть каждое изменение.
Вынести вычисления в отдельный поток, тогда основной не будет блокироваться и зависаний не будет.
Виртуальный выделенный сервер (VDS) становится отличным выбором
С какой целью они используются для std::optional, std::variant, and std::any? Каков принцип их работыЕсли можно, с примерами
Есть проект под arm который компилируется и собирается на х86ой машине (кросскомпиляция)Есть версия библиотеки protobuf собранная под arm по этой...
Моя задача состоит в том, чтобы создать post запрос, получить из него объект Item и сохранить его в базу данных OracleДля эмуляции запроса я использую...
Процесс отладки показывает, что вызов с фронта обрабатывается классами из external libraries в maven