Сделать часть окна визуально прозрачной, а также прозрачной для ввода мыши

Я пишу сценарий Qt5 PySide2 на Ubuntu 20.04.

Я хотел бы сделать часть окна прозрачной, например фрейм, чтобы я мог видеть другие оконные программы (например, Firefox, LibreOffice и т. Д.), Которые находятся под окном. (Если это невозможно, было бы нормально, если бы все окно было прозрачным, что я уже знаю, как это сделать, но мне также нужно отображать некоторые кнопки и другие виджеты в стороне и иметь возможность взаимодействовать с ними). Я могу сделать это с

      Qt.WA_TranslucentBackground

Если мое приложение прозрачно (часть (я бы хотел) или все окно (это вполне приемлемо), независимо от решения), мне также необходимо иметь возможность взаимодействовать с программой ниже. Я могу сделать это с

      Qt.WindowTransparentForInput

Проблема возникает, когда я пытаюсь совместить эти две функции. В первом случае я получаю прозрачное окно, но не могу взаимодействовать с тем, что внизу. Во втором случае у меня непрозрачное окно, но я могу взаимодействовать с тем, что находится ниже, хотя и вслепую.

Я увидел это, добавив Qt.FramelessWindowHint решает оба, но тогда я больше не могу перемещать окно, и я также хотел бы сохранить украшения окна заголовка, такие как x для закрытия окон или - для его минимизации.

Конечная цель для меня - нарисовать стрелки на прозрачном холсте Qt5 в моей программе, конечный пользователь может видеть стрелку, может видеть веб-страницу ниже и может взаимодействовать с этой веб-страницей. Но не только браузеры, я бы хотел, чтобы люди с ограниченными возможностями и пожилые люди получали наглядные пособия и в других программах. Это означает, что я предпочел бы, чтобы только часть моего графического интерфейса была прозрачной (я уже говорил о фрейме), потому что пользователь всегда должен видеть, что программа находится поверх других приложений.

Спасибо

0 ответов

Другие вопросы по тегам