Russian Qt Forum
Ноябрь 27, 2024, 08:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Блокировка Gui  (Прочитано 6006 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Сентябрь 09, 2009, 11:26 »

Вопрос такой как на время выполнения процедуры заблокировать GUI.

Пробовал с помощью QDialog то есть в начале процедуры выводил диалог с помощью exec() но стало быть выполнение программного кода тоже останавливается.

Пробую пока создавать отдельный поток но что то всё плохо ибо он должен очень тесно общаться с главным потоком, может подскажете чего.
Записан
BaltikS
Гость
« Ответ #1 : Сентябрь 09, 2009, 11:36 »

qApp->processEvents(QEventLoop::ExcludeUserInputEvents); Непонимающий
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Сентябрь 09, 2009, 11:49 »

помогло и просто

qApp->processEvents();

спасибо, я долго мучился Улыбающийся
Записан
zenden
Гость
« Ответ #3 : Сентябрь 09, 2009, 12:19 »

Странно, обычно спрашивают как РАЗблокировать GUI во время выполнения процесса.
и ответом на этот вопрос как раз-таки бывает processEvents()

а насчет QDialog - setModal() и show() вам в помощь
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #4 : Сентябрь 09, 2009, 13:56 »

Ну на самом деле там идёт довольно большая перерисовка, и пользователю нужно сказать мол подожди не кликай всё подряд.

Вот и тут меня спас QDialog и всё токи qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Сентябрь 09, 2009, 14:25 »

>>довольно большая перерисовка, и пользователю нужно сказать мол подожди не кликай всё подряд.
Может тогда лучше сразу пачку всего перерисовывать.
setUpdatesEnable для главного виджета?
Записан

Юра.
spectre71
Гость
« Ответ #6 : Сентябрь 10, 2009, 07:37 »

Вопрос такой как на время выполнения процедуры заблокировать GUI.

Пробовал с помощью QDialog то есть в начале процедуры выводил диалог с помощью exec() но стало быть выполнение программного кода тоже останавливается.
...

Код
C++ (Qt)
MyDialog->setModal(true);
...
...
MyDialog->show();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.164 секунд. Запросов: 23.