在MainWindow.h文件中添加:
protected:
void paintEvent(QPaintEvent *event);
void updateIndex();
private:
int charWidth;
int curIndex;
QString showText;
在MainWindow.cpp中添加:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QTimer>
#include <QPen>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
curIndex = 0;
showText = "滚动显示字幕*******";
// m_showText=ui->label->text ();
charWidth = fontMetrics().width("a");
QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &MainWindow::updateIndex);
timer->start(200);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::paintEvent(QPaintEvent *event)
{
QPen pen;
QPainter painter(this);
pen.setColor(QColor(255,0,255));
pen.setStyle (Qt::DashDotLine);
QFont font("楷体",20,QFont::Bold);
painter.setPen(pen);
painter.setFont (font);
painter.drawText(0, 50, showText.mid(curIndex));
painter.drawText(width() - charWidth*curIndex, 50, showText.left(curIndex));
}
void MainWindow::updateIndex()
{
update();
curIndex++;
if (curIndex*charWidth > width())
curIndex = 0;
}
运行结果:
源码下载网址:http://download.csdn.net/detail/zhulichen/9613975