#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 }
Комментариев нет:
Отправить комментарий