Название: windowState в windows 7 Отправлено: QtCoder от Август 20, 2012, 14:30 В W7 можно схватить распахнутое окно за заголовок и потащить. Сменится размер и положение окна. Да только вот Qt не меняет статус окна QMainWindow. Оно остается Qt::WindowMaximized.
Это ведет к проблемам - во-первых, статус бар не меняет вид - а должен стать с полосочками. Во-вторых, неверный статус окна не позволяет корректно восстановить размеры окна при следующем запуске программы. Событие resizeEvent срабатывает, но если поставить руками setWindowState(Qt::WindowNoState), то окно сорвется с мышки и убежит в произвольное место. То есть событие moved не будет отработано. Кто-нибудь сталкивался? Побеждал? Qt 4.7.1, на другие версии перейти не могу Название: Re: windowState в windows 7 Отправлено: Bepec от Август 20, 2012, 14:36 А что мешает поперехватывать сообщения окна и посмотреть, как реализовано это в других окнах?
Название: Re: windowState в windows 7 Отправлено: QtCoder от Август 20, 2012, 14:59 А что мешает поперехватывать сообщения окна и посмотреть, как реализовано это в других окнах? А хрен его знает. Как это сделать?Название: Re: windowState в windows 7 Отправлено: Bepec от Август 20, 2012, 15:03 Ну бери SPY++ и лови сообщения в окно. По умолчанию стоит обработка основных команд аля закрытия или перетаскивания. А вот "W7 функции" там наверняка просто не реализованы.
Ну или проще - winEvent переопределяй у своего виджета и смотри что ему приходит в момент снятия с фулэкрана. Название: Re: windowState в windows 7 Отправлено: QtCoder от Август 20, 2012, 15:06 Ну бери SPY++ и лови сообщения в окно. По умолчанию стоит обработка основных команд аля закрытия или перетаскивания. А вот "W7 функции" там наверняка просто не реализованы. Ну или проще - winEvent переопределяй у своего виджета и смотри что ему приходит в момент снятия с фулэкрана. Как это поможет? Если Qt неправильно обрабатывает событие. Происходит resize и move одновременно. Я не могу скинуть windowState с Maximized состояния. Название: Re: windowState в windows 7 Отправлено: xokc от Август 20, 2012, 15:31 Qt 4.7.1, на другие версии перейти не могу Проверил на 4.8.2 - проблем со StatusBar не наблюдаю.Название: Re: windowState в windows 7 Отправлено: QtCoder от Август 20, 2012, 15:33 Qt 4.7.1, на другие версии перейти не могу Проверил на 4.8.2 - проблем со StatusBar не наблюдаю.Название: Re: windowState в windows 7 Отправлено: Bepec от Август 20, 2012, 15:34 QtCoder - я тебе по секрету скажу, Qt обрабатывает сообщения от OS в winEvent. Соответственно пиши туда что хочешь и наслаждайся происходящим, ннэ? :)
Название: Re: windowState в windows 7 Отправлено: QtCoder от Август 21, 2012, 06:08 QtCoder - я тебе по секрету скажу, Qt обрабатывает сообщения от OS в winEvent. Соответственно пиши туда что хочешь и наслаждайся происходящим, ннэ? :) ну поймаю я это событие дальше то что? как окну сменить статус? |