Как бы я сделал наложение виджета - PullRequest
0 голосов
/ 09 июля 2019

Как мне создать оверлейный виджет с помощью qt?Example

Example 2

Я рассмотрел вопрос об использовании QPaintEvent или QGraphicsScene, но я хочу иметь возможность добавлять виджетыи чтобы виджет не занимал пространство в макете, вызывая смещение других виджетов при появлении всплывающего окна.

1 Ответ

0 голосов
/ 10 июля 2019

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

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

Если вы выберете второе решение, вам придется поиграть с флагами Windows, чтобы сделать его без полей.

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

Обсуждение «использования QPaintEvent или QGraphicsScene» не по теме. То, как вы рисуете виджет, не влияет на то, как виджет будет взаимодействовать со стеком виджетов.

Если вам нужен пример, вы можете взглянуть на код QCompleter, который делает нечто подобное. В частности ищите QCompleter::setPopup() и QCompleterPrivate::showPopup().

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