13 / 7 / 5
Регистрация: 30.07.2014
Сообщений: 41
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Окно ожидания завершения операции, пустой QDialog15.03.2016, 13:52. Показов 14394. Ответов 7
Доброго времени суток всем.
Qt 5.3.2, Qt Creator 3.2.1 Пытаюсь сделать QDialog с QProgressBar (или QProgressDialog), который во время каких-то длительных операций появляется на экране и прогресс-бар постоянно крутится до завершения операции.
Спасибо за помощь.
0
|
15.03.2016, 13:52 | |
Ответы с готовыми решениями:
7
Время ожидания выполнения истекло. Время ожидания истекло до завершения операции, или сервер не отвечает Как увеличить время ожидания до завершения операции TableAdapter.Fill()? Ожидания завершения метода Скрипт ожидания завершения процессов |
690 / 463 / 161
Регистрация: 01.10.2015
Сообщений: 1,272
|
|
15.03.2016, 14:02 | 2 |
а чем вас не устраивает QProgressDialog ?
0
|
13 / 7 / 5
Регистрация: 30.07.2014
Сообщений: 41
|
|
15.03.2016, 14:11 [ТС] | 3 |
Устраивает, только он ведет себя так же, появляется пустой диалог без виджета.
UPD: если запустить qApp->processEvents(); два раза последовательно, то появляется окно диалога с виджетами, но замороженными
0
|
690 / 463 / 161
Регистрация: 01.10.2015
Сообщений: 1,272
|
||||||
15.03.2016, 14:29 | 4 | |||||
весь проект в архиве выложить можете?
Добавлено через 13 минут попробовал запустить приведенный вами код, жалуется при компиляции на строку
0
|
13 / 7 / 5
Регистрация: 30.07.2014
Сообщений: 41
|
|||||||||||||||||||||
15.03.2016, 16:05 [ТС] | 5 | ||||||||||||||||||||
Да, опечатался.
Вот набросал тестовый проект(прикрепил к сообщению). В главном окне две кнопки, по нажатию первой вызывается QDialog + QProgressBar, по нажатию второй QProgressDialog, затем вызывается а-ля длительная функция (ping), и пока она работает, окно диалога пустое. В реальности вместо пинга всякие операции типа перемещения файлов или запуска внешних программ, не стал их лепить сюда, чтобы не усложнять, суть одна и та же. .pro Кликните здесь для просмотра всего текста
mainwindow.h Кликните здесь для просмотра всего текста
mainwindow.cpp Кликните здесь для просмотра всего текста
main.cpp Кликните здесь для просмотра всего текста
0
|
690 / 463 / 161
Регистрация: 01.10.2015
Сообщений: 1,272
|
|
15.03.2016, 16:47 | 6 |
у вас
someLongFunction() в одном потоке с интерфейсом пользователя, она блокирует интерфейс на период своего исполнения, исполняйте эти операции в отдельном потоке.
0
|
13 / 7 / 5
Регистрация: 30.07.2014
Сообщений: 41
|
||||||||||||||||
15.03.2016, 18:21 [ТС] | 7 | |||||||||||||||
Хорошо, я добавил еще класс
longclass.cpp
Но что делать, если мне нужны какие-то операции с GUI (работа с view/model , запись через QSqlQuery), ну и вообще работа с оригинальным классом?
0
|
690 / 463 / 161
Регистрация: 01.10.2015
Сообщений: 1,272
|
|
15.03.2016, 18:42 | 8 |
сигнально/слотовый механизм работает и в том случае, если объекты находятся в разных потоках
0
|
15.03.2016, 18:42 | |
15.03.2016, 18:42 | |
Помогаю со студенческими работами здесь
8
QDialog окно и приостановка выполнения После завершения процесса он остается в режиме ожидания Ввод и вывод в python без ожидания завершения программы Разница между QDialog::exec() и QDialog::Open() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |