#include <QLabel>
#include <QTimer>
#include<QPainter>
class ScrollLabel : public QLabel
{
Q_OBJECT
public:
ScrollLabel(QWidget *parent = nullptr)
: QLabel(parent)
, m_scrollTimer(new QTimer(this))
{
setAlignment(Qt::AlignLeft);
m_scrollTimer->setInterval(30);
connect(m_scrollTimer, &QTimer::timeout, this, &ScrollLabel::scrollText);
}
void setText(const QString &text)
{
QLabel::setText(text);
m_scrollOffset = 0;
m_scrollTimer->start();
}
protected:
void paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawText(rect().translated(m_scrollOffset, 0), alignment(), text());//translated(m_scrollOffset, 0) 将矩形区域在水平方
07-24
861

05-30
2417
