Я создал CustomWidget класс:
CustomWidget.h :
#include <QWidget>
#include <QPainter>
class CustomWidget : public QWidget
{
Q_OBJECT
public:
explicit CustomWidget(QWidget *parent = nullptr);
void paintEvent(QPaintEvent* event);
signals:
public slots:
};
CustomWidget.cpp :
#include "customwidget.h"
CustomWidget::CustomWidget(QWidget *parent) : QWidget(parent)
{
this->setWindowFlag(Qt::FramelessWindowHint);
}
void CustomWidget::paintEvent(QPaintEvent* event)
{
if (this->isActiveWindow())
{
QPainter painter(this);
painter.setPen(Qt::green);
painter.setBrush(QBrush(QColor(69, 232, 32, 100)));
painter.drawRect(rect());
}
}
Когда я компилирую и запускаю этот код в Linux (KDE Neon), я вижу правильный виджет с цветом (цвет зеленый = 69, 232, 32), но прозрачность (альфа = 100) не работает. Вот изображение:
Как я могу создавать прозрачные или непрозрачные виджеты? Это ошибка?
Кроме того, я могу видеть прозрачные виджеты, если я могу создать прозрачность / прозрачный виджет, но не могу использовать фон (я имею в виду, я не могу вмешиваться в объекты, которые находятся за виджетом. весь экран и мы можем использовать экран). Могу ли я создать такие виджеты? Благодаря.