实现跑马灯的方式多种多少样,可以通过定时器,或者animation等来实现。
本文通过定时器,将第一个文字,移动到最后一个这种方式来实现,还有其他方式哈。
直接上源码
h文件
#ifndef TEXTTICKER_H
#define TEXTTICKER_H
#include <QtWidgets/QLabel>
#include<QDebug>
/*跑马灯标签文字*/
class TextTicker : public QLabel
{
Q_OBJECT
public:
TextTicker(QWidget *parent = 0);
~TextTicker();
void setText(QString text);
void setFontSize(int fontsize);
protected:
void paintEvent(QPaintEvent *event);
private slots:
void updateText();
private:
int m_position;
QString m_showText;
int fontsize = 50;
QString visibleText;
};
#endif // TEXTTICKER_H
cpp文件
#include "TextTicker.h"
#include <QPainter>
#include <QTimer>
TextTicker::TextTicker(QWidget *parent)
: QLabel(parent),m_position(0)
{
QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &TextTicker::update