Qt设置滚动字体的方法如下:
以最简单也最常用的label为例:
QString labelpro = "Qt设置字幕滚动播放";
//设定定时器,每500毫秒触发一次定时器事件
QTimer *pTimer = new QTimer(this);
pTimer->start(500);
connect(pTimer, SIGNAL(timeout()), this, SLOT(scrollCaption()));
//定时器事件,设置字幕滚动
void Widget::scrollCaption()
{
static int nPos = 0;
//当截取的位置比字符串长时,从头开始
if (nPos > labelpro .length())
nPos = 0;
//设置控件文本
ui->label->setText(labelpro.mid(nPos));
nPos++;
}
QString QString::mid(int position, int n = -1) const函数的功能是返回position位置开始的字符串,上述代码中,nPos每500毫秒加一,因此每500毫秒重新设置一次label显示的内容 ,给人视觉上的感受就是字幕在滚动。
效果如下: