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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Странное поведение главного окна  (Прочитано 2057 раз)
AlekseyK
Гость
« : Сентябрь 04, 2011, 08:41 »

После максимизации окна стоит только переключиться на другое приложение и вернуться назад или нажать любую кнопку или другой контрол окно возвращается в исходное состояние, исходный размер (restore). Кто-нибудь сталкивался с подобным? Что за странность, из-за чего может возникать? Флаги неправильные, стили, что? Воспроизводится в Windows и Linux, на Маке такого нет.
Записан
AlekseyK
Гость
« Ответ #1 : Сентябрь 05, 2011, 04:30 »

Хмм, метод MyMainWindow::resizeEvent(QResizeEvent *event) показывает, что событие по возвращению окна к исходному состоянию - спонтанное:
Код
C++ (Qt)
event->spontaneous() == true;
Как такое может быть и почему???
Записан
AlekseyK
Гость
« Ответ #2 : Сентябрь 12, 2011, 23:44 »

X-сервер посылает XEvent с type=22, что означает ConfigureNotify. Почему Qt интерпретирует его как "resize event" (в translateConfigEvent) и восстанавливает размер окна??!! Думаю, что схожая ситуация происходит в Windows, нужно там тоже посмотреть стек.

Стек прилагается:
Код
C++ (Qt)
0 KMyWindow::resizeEvent KMyWindow.cpp 82 0x4a6649
1 QWidget::event qwidget.cpp 8449 0x7ffff4e82d82
2 QMainWindow::event qmainwindow.cpp 1478 0x7ffff524cb5b
3 QApplicationPrivate::notify_helper qapplication.cpp 4481 0x7ffff4e31234
4 QApplication::notify qapplication.cpp 4360 0x7ffff4e397ca
5 QCoreApplication::notifyInternal qcoreapplication.cpp 787 0x7ffff45fd99c
6 sendSpontaneousEvent qcoreapplication.h 218 0x7ffff4ea1233
7 QETWidget::translateConfigEvent qapplication_x11.cpp 5338 0x7ffff4ea1233
8 QApplication::x11ProcessEvent qapplication_x11.cpp 3492 0x7ffff4eafa3b
9 x11EventSourceDispatch qguieventdispatcher_glib.cpp 146 0x7ffff4ed75c2
10 g_main_context_dispatch /usr/lib64/libglib-2.0.so.0 0 0x7ffff31c0a93
11 ?? /usr/lib64/libglib-2.0.so.0 0 0x7ffff31c1270
12 g_main_context_iteration /usr/lib64/libglib-2.0.so.0 0 0x7ffff31c1510
13 QEventDispatcherGlib::processEvents qeventdispatcher_glib.cpp 422 0x7ffff46286ef
14 QGuiEventDispatcherGlib::processEvents qguieventdispatcher_glib.cpp 204 0x7ffff4ed725e
15 QEventLoop::processEvents qeventloop.cpp 149 0x7ffff45fcdd2
16 QEventLoop::exec qeventloop.cpp 201 0x7ffff45fcfe5
17 QCoreApplication::exec qcoreapplication.cpp 1064 0x7ffff460144b
18 KMyApplication::exec timedoctor_application.h 89 0x4df871
19 main main.cpp 48 0x4df556
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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