Russian Qt Forum
Февраля 24, 2025, 17:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Cобытие о том, что окно создано и нарисовано  (Прочитано 4293 раз)
burunduk
Гость
« : Апреля 06, 2006, 12:11 »

Может я ещё не проснулся, но что-то недопойму как же мне выставить пользователю обычный MessageBox при старте приложения и при уже нарисованном главном окне.

Вызов из конструктора окна не подходит, так как главное окно еще не создано и не нарисовано.
Записан
Hordi
Гость
« Ответ #1 : Апреля 06, 2006, 12:25 »

Смотри функцию polish(). Также из polish() можно с запустить окно через таймер
Записан
Dendy
Гость
« Ответ #2 : Апреля 06, 2006, 12:34 »

Попробуй так. Создаёшь QMessageBox в динамической памяти, ставишь флаг Qt::WA_DeleteOnClose и делаешь ему [b[show()[/b] в конструкторе.
Записан
Sergeich
Гость
« Ответ #3 : Апреля 06, 2006, 16:26 »

Можно добавить в showEvent для главного окна
Записан
burunduk
Гость
« Ответ #4 : Апреля 06, 2006, 16:39 »

Хм, а если окно свернуть/развернуть ?
Хотя можно еще флажок конечно сделать.

Пока сделал как советовал Dendy. Кстати, спасиба Улыбающийся

Надеялся, что всё же для такой простой задачи, должно быть простое решение. Я вообже ожидал от Qt сигнала, что всё прорисовано или protected ф-цию, которую можно заменить, и которая вызывается когда уже всё прорисовано.


Цитата: "Sergeich"
Можно добавить в showEvent для главного окна
Записан
alex0303
Гость
« Ответ #5 : Апреля 06, 2006, 19:38 »

В конструкторе вызвать
Код:

QTimer::singleShot (0, this, SLOT(slotStarted()));


НУ а в slotStarted() уже свой MessageBox или хоть что другое.

Цитировать
As a special case, a QTimer with timeout 0 times out as soon as all the events in the window system's event queue have been processed.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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