Подтвердить что ты не робот

Сделайте QT Widgets полупрозрачным

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

Я видел метод QWidgets, который является QWidget:: setWindowOpacity(), но это работает, только если виджет является самим окном, и в моем случае этот виджет является частью макета.

Цель всего этого заключается в том, что я могу заставить этот виджет исчезать при появлении или исчезновении.

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

4b9b3361

Ответ 1

Вы можете использовать QGraphicsOpacityEffect.

Пример фрагмента кода для прозрачности 50%:

ui->setupUi(this);
QGraphicsOpacityEffect * effect = new QGraphicsOpacityEffect(ui->pushButton);
effect->setOpacity(0.5);
ui->pushButton->setGraphicsEffect(effect);