QT显示歌词渐变

编程入门 行业动态 更新时间:2024-10-10 09:21:05

QT<a href=https://www.elefans.com/category/jswz/34/915925.html style=显示歌词渐变"/>

QT显示歌词渐变

       central = new QWidget(this);setCentralWidget(central);central->setAutoFillBackground(true);central->setWindowOpacity(1);label = new QLabel(tr("这是一首歌,请你记住它,不要忘记"),central);label2 = new QLabel(central);label2->move(100, 150);label2->resize(500,50);label->move(100, 150);label->resize(500,50);QFont ft;ft.setPointSize(15);label->setFont(ft);label->setAttribute(Qt::WA_TranslucentBackground);label2->setFont(ft);label2->setAttribute(Qt::WA_TranslucentBackground);str = tr("这是一首歌,请你记住它,不要忘记");count=1;QTimer *timer = new QTimer(this);connect(timer, SIGNAL(timeout()), this, SLOT(paint()));timer->start(1000);
void label_test::paint()
{count++;update();qDebug()<<count;
}void label_test::paintEvent(QPaintEvent *e)
{QLinearGradient linearGrad(QPointF(100, 150), QPointF(200, 200));linearGrad.setColorAt(0, Qt::red);linearGrad.setColorAt(0.5, Qt::yellow);linearGrad.setColorAt(1, Qt::green);QBrush brush(linearGrad);QPalette palette;palette.setBrush(QPalette::WindowText, brush);int length = str.length();if(count > length){count = 1;}label2->setPalette(palette);//label->setText("");QString s = str.mid(0, count);label2->setText(s);label2->show();}

主要思路是用两个qlabel 控件,第二个QLabel控件每次都重新绘制第一个QLabel.

repaint会自动调用paintEvent函数

  

更多推荐

QT显示歌词渐变

本文发布于:2024-02-25 18:04:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699845.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:显示歌词   QT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!