1.重写paintEvent函数:
void MainWindow::paintEvent(QPaintEvent *event)
{
QString strShow = "1234567890";
QPainter p(this);
//设置字体
QFont font = p.font();
font.setPixelSize(20);
//设置画笔
QPen pen;
p.setFont(font);
pen.setColor(QColor(255,0,255));
p.setPen(pen);
//获取字体占用的矩阵大小
QRect rectfont = QFontMetrics(p.font()).boundingRect(strShow);
//流动显示逻辑
static int indexPointX = 0;
indexPointX = indexPointX+5;
if(indexPointX > width()+ rectfont.width())
indexPointX = 0;
//显示文字
p.drawText(width()-indexPointX,height()-20,strShow);
}
2.构造函数,定时器不断刷新
QTimer * pTimer = new QTimer(this);
connect(pTimer,&QTimer::timeout,this,[&,pTimer](){
update();
});
pTimer->start(100);
3.效果