Qt工作笔记-跑马灯效果

逻辑:

使用静态变量确定位置;

利用QString中mid这函数的性质:

程序运行截图如下:

代码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
class QTimer;

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    
public slots:
    void scrollActive();

private:
    Ui::Widget *ui;
    QTimer *m_timer;
    QString m_string;
};

#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QTimer>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    m_string="跑马灯效果1 跑马灯效果2 跑马灯效果3 跑马灯效果4 跑马灯效果5";
    m_timer=new QTimer(this);
    connect(m_timer,SIGNAL(timeout()),this,SLOT(scrollActive()));
    m_timer->start(500);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::scrollActive()
{
    static int nPos=0;
    if(nPos>m_string.length()){
        nPos=0;
    }
    ui->label->setText(m_string.mid(nPos));
    nPos++;
}

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/81202472