当前位置: 首页 > article >正文

qt实现文字跑马灯效果

实现跑马灯的方式多种多少样,可以通过定时器,或者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::updateText);
    timer->start(500);
}


TextTicker::~TextTicker()
{


}

void TextTicker::setText(QString text)
{
    m_showText = text;
}

void TextTicker::setFontSize(int fontsize)
{
    this->fontsize = fontsize;
}


void TextTicker::paintEvent(QPaintEvent *event)
{
    (void) event;
    QPainter painter(this);
    painter.setFont(QFont("宋体",fontsize));
    painter.drawText(0 , rect().height() / 2 + fontsize /2 ,visibleText);化

}


void TextTicker::updateText()
{
     visibleText = m_showText.mid(m_position) + m_showText.left(m_position);
    setText(visibleText);
    m_position = (m_position + 1) % m_showText.length();
    update(); // 触发重绘事件
}


http://www.kler.cn/a/550738.html

相关文章:

  • 【CVE-2025-1094】 影响 SQL 注入的 PostgreSQL
  • CMS DTcms 靶场(弱口令、文件上传、tasklist提权、开启远程桌面3389、gotohttp远程登录控制)
  • 基于SSM框架的童装购买平台微信小程序(ssm论文源码调试讲解)
  • 矩阵系统源码搭建之多种剪辑功能技术开发,支持OEM
  • 通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
  • Pikachu靶场-SSRF漏洞
  • matlab模拟风场的随机脉动风
  • Weboffice在线Word权限控制:限制编辑,只读、修订、禁止复制等
  • 点击el-dialog弹框跳到其他页面浏览器的滚动条消失了多了 el-popup-parent--hidden
  • Hadoop 基础原理
  • 长视频生成、尝试性检索、任务推理 | Big Model Weekly 第56期
  • zola + github page,用 workflows 部署
  • 《深度学习》—— DataLoader数据处理、transforms
  • 【AI工具之Deepseek+Kimi一键免费生成PPT】
  • PaddlePaddle的OCR模型转onnx-转rknn模型_笔记4
  • 小爱音箱连接电脑外放之后,浏览器网页视频暂停播放后,音箱整体没声音问题解决
  • RDBMS 和 NoSQL 的比较
  • 软硬链接?
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(二) -> tabs
  • webpack 项目优化(一)