Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: StogovOleg от Октябрь 12, 2007, 21:13



Название: Доступность пункта меню
Отправлено: StogovOleg от Октябрь 12, 2007, 21:13
Доброго времени суток.

Есть пункт главного меню. По нажатию на него создается окно с флагами WShowModal и WType_TopLevel. Конструктор этого окна отрабатывает около 10 секунд за это время пользователь может нажать на этот пункт меню еще несколько раз и откроется несколько таких окон, что недопустимо. Пробовал следующий код:

for (int i = 0; i < menuBar()->count(); i++)
{
    menuBar()->setItemEnabled(menuBar()->idAt(i), FALSE);
}
//после чего вызываю конструктор окна
MyWin *My_Win = new MyWin();
My_Win->show();


меню становиться не активным только когда появиться окно, поэтому пользователь все равно может несколько раз нажать на пункт меню.
Почему пункты меню становяться не активными только после появления окна?


Название: Re: Доступность пункта меню
Отправлено: Вячеслав от Октябрь 12, 2007, 21:21
А например после цикла QCoreApplication::processEvents позвать ? Не полегчает ?


Название: Re: Доступность пункта меню
Отправлено: StogovOleg от Октябрь 12, 2007, 21:31
забыл сказать, использую qt-3.3.3, там нет класса QCoreApplication, спасибо за предложение принудительно прогнать очередь событий.
в моей версии попробую вызвать QEventLoop::processEvents