[MacOS] quitOnLastWindowClosed(false) -> восстановление окна
От: Yabloko  
Дата: 13.02.11 08:54
Оценка:
Разбираюсь с Qt под MacOS и столкнулся с проблемой, которую никак не удается побороть.

Сначала все делаем стандартно.

Устанавливаем quitOnLastWindowClosed(false) -> приложение не закрывается при закрытии последнего окошка, а оставляет за собой иконку в Dock.

После этого тыкаем на иконку — и ничего не происходит... появляется только менюшка приложения, само окно не возвращается.

В документации был обнаружен QWidget::macEvent , но оно что-то не вызывается никогда.

Поэтому вопрос — что-нибудь происходит вообще для Qt, когда нажимается иконка в Dock для такого приложения. И как все-таки можно вернуть окно обратно?

Прошу прощения, если спрашиваю банальные вещи, но никак не могу разобраться.
Re: [MacOS] quitOnLastWindowClosed(false) -> восстановление
От: kpcb Россия  
Дата: 13.02.11 10:32
Оценка:
Здравствуйте, Yabloko, Вы писали:

Y>Разбираюсь с Qt под MacOS и столкнулся с проблемой, которую никак не удается побороть.


Y>Сначала все делаем стандартно.


Y>Устанавливаем quitOnLastWindowClosed(false) -> приложение не закрывается при закрытии последнего окошка, а оставляет за собой иконку в Dock.


Y>После этого тыкаем на иконку — и ничего не происходит... появляется только менюшка приложения, само окно не возвращается.


Y>В документации был обнаружен QWidget::macEvent , но оно что-то не вызывается никогда.


Y>Поэтому вопрос — что-нибудь происходит вообще для Qt, когда нажимается иконка в Dock для такого приложения. И как все-таки можно вернуть окно обратно?


Y>Прошу прощения, если спрашиваю банальные вещи, но никак не могу разобраться.


QWidget::macEvent работает только для Qt собраной с Carbon-ом.

Вообще при нажатии на иконке в доке вызовется селектор applicationShouldHandleReopen:hasVisibleWindows: у делегата приложения (NSApplication).
Что конкертно произойдёт в Qt -- не знаю -- надо смотреть в исходниках
Re: [MacOS] quitOnLastWindowClosed(false) -> восстановление
От: Yabloko  
Дата: 13.02.11 12:06
Оценка:
Похоже, что в Qt это никак не обрабатывается, но есть патч: http://bugreports.qt.nokia.com/browse/QTBUG-10899
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.