Какое событие относится к изменению фокуса окна в qt C++?
Я хочу сохранить заголовок сфокусированного окна, я сделал эту часть, но я не знаю, есть ли QEvent, который перехватывает все (не прикладные) события focusChanged? Как переход с Chrome на Qt Creator. Я сделал альтернативное решение, которое каждую секунду проверяет, не изменился ли заголовок самого верхнего окна, но это так грубо. Мне нужно кроссплатформенное решение, если это возможно.
РЕДАКТИРОВАТЬ
Я использую QT 5.9.0
1 ответ
Быстрый ответ: Qt имеет события фокуса только для своих окон и виджетов. См. http://doc.qt.io/qt-5/qfocusevent.html для начальной точки. Нет событий для фокусировки в других приложениях.
Детали: Для многоплатформенного решения необходимо иметь более общую точку зрения. В некоторых системах (окна X) фокус клавиатуры находится в окне под мышью. Но это окно становится верхним только после щелчка. На мобильных платформах есть только одно активное приложение. И приложение не может видеть, когда другие приложения активированы. Так что в моем понимании нет полного мультиплатформенного решения.
Только расширения для Windows находятся в Qt Windows Extras. http://doc.qt.io/qt-5/qtwinextras-overview.html. Но, к сожалению, ничего не изменилось.