Russian Qt Forum
Ноябрь 23, 2024, 17:38
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
windowState в windows 7
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: windowState в windows 7 (Прочитано 4151 раз)
QtCoder
Гость
windowState в windows 7
«
:
Август 20, 2012, 14:30 »
В W7 можно схватить распахнутое окно за заголовок и потащить. Сменится размер и положение окна. Да только вот Qt не меняет статус окна QMainWindow. Оно остается Qt::WindowMaximized.
Это ведет к проблемам - во-первых, статус бар не меняет вид - а должен стать с полосочками.
Во-вторых, неверный статус окна не позволяет корректно восстановить размеры окна при следующем запуске программы.
Событие resizeEvent срабатывает, но если поставить руками setWindowState(Qt::WindowNoState), то окно сорвется с мышки и убежит в произвольное место. То есть событие moved не будет отработано.
Кто-нибудь сталкивался? Побеждал?
Qt 4.7.1, на другие версии перейти не могу
Записан
Bepec
Гость
Re: windowState в windows 7
«
Ответ #1 :
Август 20, 2012, 14:36 »
А что мешает поперехватывать сообщения окна и посмотреть, как реализовано это в других окнах?
Записан
QtCoder
Гость
Re: windowState в windows 7
«
Ответ #2 :
Август 20, 2012, 14:59 »
Цитата: Bepec от Август 20, 2012, 14:36
А что мешает поперехватывать сообщения окна и посмотреть, как реализовано это в других окнах?
А хрен его знает. Как это сделать?
Записан
Bepec
Гость
Re: windowState в windows 7
«
Ответ #3 :
Август 20, 2012, 15:03 »
Ну бери SPY++ и лови сообщения в окно. По умолчанию стоит обработка основных команд аля закрытия или перетаскивания. А вот "W7 функции" там наверняка просто не реализованы.
Ну или проще - winEvent переопределяй у своего виджета и смотри что ему приходит в момент снятия с фулэкрана.
Записан
QtCoder
Гость
Re: windowState в windows 7
«
Ответ #4 :
Август 20, 2012, 15:06 »
Цитата: Bepec от Август 20, 2012, 15:03
Ну бери SPY++ и лови сообщения в окно. По умолчанию стоит обработка основных команд аля закрытия или перетаскивания. А вот "W7 функции" там наверняка просто не реализованы.
Ну или проще - winEvent переопределяй у своего виджета и смотри что ему приходит в момент снятия с фулэкрана.
Как это поможет? Если Qt неправильно обрабатывает событие. Происходит resize и move одновременно. Я не могу скинуть windowState с Maximized состояния.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: windowState в windows 7
«
Ответ #5 :
Август 20, 2012, 15:31 »
Цитата: QtCoder от Август 20, 2012, 14:30
Qt 4.7.1, на другие версии перейти не могу
Проверил на 4.8.2 - проблем со StatusBar не наблюдаю.
Записан
QtCoder
Гость
Re: windowState в windows 7
«
Ответ #6 :
Август 20, 2012, 15:33 »
Цитата: xokc от Август 20, 2012, 15:31
Цитата: QtCoder от Август 20, 2012, 14:30
Qt 4.7.1, на другие версии перейти не могу
Проверил на 4.8.2 - проблем со StatusBar не наблюдаю.
Пофиксили значит. Надо попробовать оттуда код вытащить.
Записан
Bepec
Гость
Re: windowState в windows 7
«
Ответ #7 :
Август 20, 2012, 15:34 »
QtCoder - я тебе по секрету скажу, Qt обрабатывает сообщения от OS в winEvent. Соответственно пиши туда что хочешь и наслаждайся происходящим, ннэ?
Записан
QtCoder
Гость
Re: windowState в windows 7
«
Ответ #8 :
Август 21, 2012, 06:08 »
Цитата: Bepec от Август 20, 2012, 15:34
QtCoder - я тебе по секрету скажу, Qt обрабатывает сообщения от OS в winEvent. Соответственно пиши туда что хочешь и наслаждайся происходящим, ннэ?
ну поймаю я это событие дальше то что? как окну сменить статус?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...