Qt - выборочно позволяет клику проваливаться в нижнее окно приложения - PullRequest
0 голосов
/ 14 октября 2018

Можно ли получить щелчок мыши даже в приложении Qt, оценить его и, если необходимо, дать ему упасть до того, что может оказаться ниже окна приложения Qt?

Обратите внимание, что Qt::WA_TransparentForMouseEvents не облегчает оценку клика до его прохождения.

И поскольку оценка клика включает некоторую динамическую логику, также не применимо задавать статическую маску, кроме того, она также оказывает визуальное воздействие..

В идеале мне бы хотелось, чтобы способ выборочно позволять щелчку мыши проходить через окно приложения переносимым способом платформы, в идеале из QML и без использования модуля виджетов, или, по крайней мере, безвключая копание в частные C ++ внутренние API.

1 Ответ

0 голосов
/ 15 октября 2018

Qt::WA_TransparentForMouseEvents используется для фильтрации событий мыши.Название немного неправильное: оно позволяет виджетам, которые в противном случае потребляют события мыши, не использовать их.Например, вы можете сделать кнопку не заметить никаких событий мыши.Если вы пишете пользовательский виджет, этот атрибут никогда не понадобится, поскольку вы сами должны проверять события мыши и просто не обрабатывать их: они автоматически передаются в родительский виджет.

Но всеэто не имеет большого значения, поскольку атрибуты WA_ предназначены для виджетов и ничего не делают для окон.Вы хотите что-то совсем другое: сделать само окно прозрачным для ввода.Таким образом, в QML:

window.flags = window.flags | Qt.WindowTransparentForInput
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...