Нужны уточнения Qt QPA и X11
Я часами пытался понять работу с платформой Qts, но не понимаю. Для работы с горячими клавишами в настоящее время я использую смесь X11extras для отображения, xlib для преобразования ключей и xcb для обработки собственных событий Qt. Три библиотеки для связи. И где здесь играют роль недокументированные QPA? Теперь мне интересно, если это необходимо. Мне нужно немного разъяснений здесь. Я использую QT 5.4. Какой путь идти в будущее?
1 ответ
Для Qt вам не нужно создавать какие-либо собственные программные платформы для ключевых событий, если вы не используете собственные окна. Читайте о QEvent и функциях событий в QWidget
,
Используйте QWidget::nativeEvent() или QCoreApplication::installNativeEventFilter(), если вам нужен прямой доступ к необработанным событиям X11. Собственные фильтры событий на уровне приложения обрабатываются для каждого события и оказывают большее влияние на производительность, чем на подклассы. QWidget
и переопределение nativeEvent()
,
Прочитайте о QWindow::fromWinId() и QWidget::createWindowContainer()
если вам нужно встроить родное окно в качестве дочернего виджета.