📄 ticker.cpp
字号:
#include <qpainter.h>#include "ticker.h"Ticker::Ticker(QWidget *parent, const char *name) : QWidget(parent, name){ offset = 0; myTimerId = 0;}void Ticker::setText(const QString &newText){ myText = newText; update(); updateGeometry();}QSize Ticker::sizeHint() const{ return fontMetrics().size(0, text());}void Ticker::paintEvent(QPaintEvent *){ QPainter painter(this); int textWidth = fontMetrics().width(text()); if (textWidth < 1) return; int x = -offset; while (x < width()) { painter.drawText(x, 0, textWidth, height(), AlignLeft | AlignVCenter, text()); x += textWidth; }}void Ticker::showEvent(QShowEvent *){ myTimerId = startTimer(30);}void Ticker::timerEvent(QTimerEvent *event){ if (event->timerId() == myTimerId) { ++offset; if (offset >= fontMetrics().width(text())) offset = 0; scroll(-1, 0); } else { QWidget::timerEvent(event); }}void Ticker::hideEvent(QHideEvent *){ killTimer(myTimerId);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -