Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: andrew.k от Декабрь 18, 2010, 21:31



Название: ShowMaximized не обновляется размер
Отправлено: andrew.k от Декабрь 18, 2010, 21:31
Есть главная форма QMainWindow.
В конструкторе создается QLabel fake(this);
Это член класс формы. он не лежит в лейаутах.
В нужный момент его нужно отобразить и он должен перекрыть собой форму (fake.show(), fake.raise() )
После создания формы, когда приложение уже работает (евент луп запущен), то все без проблем.
Но если мне нужно чтобы форма в момент создания уже была перекрыта, ничего не получается.
показываю форму по showMaximized().
Но до тех пор пока не запустится евент луп, размеры формы не обновляются.
В лабеле хранится снимок формы (grabWidget(this))
В общем никак не получается сообразить с последовательностью действий. надеюсь понятно объяснил.


Название: Re: ShowMaximized не обновляется размер
Отправлено: GreatSnake от Декабрь 19, 2010, 12:52
После вызова showMaximized() окно меняет свои размеры асинхронно.
Поэтому нужно следить когда отработает QEvent::WindowStateChange.


Название: Re: ShowMaximized не обновляется размер
Отправлено: andrew.k от Декабрь 19, 2010, 21:22
После вызова showMaximized() окно меняет свои размеры асинхронно.
Поэтому нужно следить когда отработает QEvent::WindowStateChange.
Спасибо, попробую. Я пробовал использовать QEvent::Resize, но почему-то не получилось. Так как я мне нужно сделать QPixmap::grabWidget и полученное изображение запихнуть в QLabel что приводило к повторному событию и зацикливалось.


Название: Re: ShowMaximized не обновляется размер
Отправлено: andrew.k от Декабрь 20, 2010, 05:27
После вызова showMaximized() окно меняет свои размеры асинхронно.
Поэтому нужно следить когда отработает QEvent::WindowStateChange.
Спасибо, попробую. Я пробовал использовать QEvent::Resize, но почему-то не получилось. Так как я мне нужно сделать QPixmap::grabWidget и полученное изображение запихнуть в QLabel что приводило к повторному событию и зацикливалось.
Во время события WindowStateChange размер формы по-прежнему старый.