ticker.cpp
来自「在LINUX下」· C++ 代码 · 共 63 行
CPP
63 行
#include <qpainter.h>#include "ticker.h"#include <qwhatsthis.h>Ticker::Ticker(QWidget *parent, const char *name) : QWidget(parent, name){ offset = 0; myTimerId = 0;}
void Ticker::setText(const QString &newText)
{
myText = trUtf8(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 + =
减小字号Ctrl + -
显示快捷键?