赞
踩
#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(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。