QLabel和QTimer之滚动字幕
一、实现功能:有时候做项目需要用到滚动字幕的效果,其实实现很简单,只需要使用一个定时器QTimer和QLabel就可以达到效果啦。
二、实现效果:
三、代码示例:
/***************.h文件***************/
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
public slots:
void dealRollingTitle();
private:
Ui::Widget *ui;
QString m_labelTitle;
QTimer *m_pTimer;
};
#endif // WIDGET_H
/***************.cpp文件***************/
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
m_labelTitle = QString(tr("博客地址:http://blog.csdn.net/toby54king."));
m_pTimer = new QTimer(this);
m_pTimer->setInterval(200);
connect(m_pTimer,SIGNAL(timeout()),this,SLOT(dealRollingTitle()));
m_pTimer->start();
}
Widget::~Widget()
{
delete ui;
}
// 函数说明:定时器刷新
// 作 者:ISMILE_LI
void Widget::dealRollingTitle()
{
static int pos = 0;
if(pos > m_labelTitle.length())
pos = 0;
ui->label->setText(m_labelTitle.mid(pos));
ui->label_2->setText(m_labelTitle.right(pos));
ui->label_3->setText(m_labelTitle.left(pos));
pos++;
}
源代码下载地址,需要一点积分,没有必要的话不需要下载源码的,文中主要代码都有了
:http://download.csdn.net/download/toby54king/10132993
本文为博主原创文章,未经博主允许请勿转载!作者:ISmileLi