Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Полупрозрачный фон виджета в QT

#qt #cpp


Необходимо сделать фон виджета QLabel полупрозрачным. Подскажите, как это можно реализовать?
opacity использовать не получается, т.к. оно может использоваться только в всплывающих
окнах.     


Ответы

Ответ 1



Надо расширить класс QLabel и в новом классе переопределить метод paintEvent, вставив туда примерно такой код QPainter paint; paint.begin (this); paint.setBrush (QBrush (QColor (255, 255, 255, 180))); paint.setPen (Qt::NoPen); paint.drawRect (0, 0, width(), height()); paint.end(); В QColor последнее значение - значение альфа-канала, которое и определяет прозрачность. Меняется от 0 (полностью прозрачное) до 255.

Ответ 2



Не согласен с предыдущим оратором. Делать так можно, конечно, но лучше использовать стайлшиты. Например такой текст стайлшита для полупрозрачной кнопки: QPushButton { color: rgb(255, 255, 0); // цвет текста желтый background-color: rgba(0, 255, 0, 90) // зеленый полупрозрачный фон rgba }

Комментариев нет:

Отправить комментарий