QLabel和QTimer之滚动字幕

来源:互联网 发布:杨凯 黄金分割线 源码 编辑:程序博客网 时间:2024/06/06 14:20

一、实现功能:有时候做项目需要用到滚动字幕的效果,其实实现很简单,只需要使用一个定时器QTimer和QLabel就可以达到效果啦。

二、实现效果:
这里写图片描述

三、代码示例:

/***************.h文件***************/#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QTimer>namespace Ui {class Widget;}class Widget : public QWidget{    Q_OBJECTpublic:    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_LIvoid 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

原创粉丝点击