#include "glwidget.h"
#include <QPainter>
#include <QTimer>
#include <QDebug>
#include <QGraphicsOpacityEffect>
#include <QLabel>
#include <QtMath>
GLWidget::GLWidget(QWidget *parent)
: QOpenGLWidget(parent)
{
setFixedSize(200, 200);
//设置主窗体背景颜色为红色
QPalette linkColor;
linkColor.setColor(QPalette::Background, Qt::red);
setPalette(linkColor);
setAutoFillBackground(true);
//设置控件是否透明
#if 1
setAutoFillBackground(false);
setWindowFlags(Qt::FramelessWindowHint);//设置无边框
setAttribute(Qt::WA_TranslucentBackground, true);
#endif
//添加QLabel控件
// QLabel *label = new QLabel(this); //创建QLabel控件
// //setCentralWidget(label); //将当前控件至于中央
// label->setGeometry(0,0,100,20);
// //label->setStyleSheet("background-color: rgb(78, 154, 6);");
// label->setStyleSheet( "background-color: rgba(191, 64, 64, 0);");
// label->setText(tr("Hello World!")); //设置控件文本
// label->setAlignment(Qt::AlignCenter); //文本水平和垂直都居中
// label->show();
#if 1
// 方法一:设置整体透明度(包括子控件,透明后背景则会是黑色的)
// QGraphicsOpacityEffect * opacityEffect = new QGraphicsOpacityEffect;
// setGraphicsEffect(opacityEffect);
// opacityEffect->setOpacity(0);
// opacityEffect->setOpacity(0.5);
// opacityEffect->setOpacity(0.0);
// QLinearGradient alphaGradient(0,0,30,20);
// QLinearGradient alphaGradient(label->geometry().topLeft(), label->geometry().bottomRight());
// alphaGradient.setColorAt(1, Qt::transparent);
// alphaGradient.setColorAt(1, Qt::black);
// alphaGradient.setColorAt(1.0, Qt::transparent);
// QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect;
// effect->setOpacityMask(alphaGradient);
#endif
}
void GLWidget::paintEvent(QPaintEvent *event)
{
QPainter paint(this);
paint.begin(this);
// setStyleSheet("background-color: rgba(191, 64, 64, 0);");
//设置画笔颜色
QColor wordColor = QColor(237, 212, 0, 255);
paint.setPen(wordColor);
//设置字体
QFont wordFont = QFont(QString("黑体"), 30);
paint.setFont(wordFont);
//绘制内容
paint.drawText(10, 50, QString("HelloGL"));
paint.end();
}
back 背景色透明
最新推荐文章于 2025-05-23 00:15:00 发布
3024

被折叠的 条评论
为什么被折叠?



