写代码前。首先我们肯定要新建一个项目。

1.点击文件新建文件或项目

2.选择带界面的。名称自己写。然后继承widget。完成

3.这样,我们就得到了一个空的gui项目了。

新建一个能实现文字滚动的头.h文件和对应的.cpp文件

这一次选择c++类。点击下一步我们就会得到一个自己写好名字的头文件和源文件了

接下来就是代码了。这是头文件

随便提一下,这里我们重写了laber的绘画事件

以及新建了一个更新需要滚动的文字下标值类。

 1 #include <QLabel>
 2
 3 class TextTicker : public QLabel
 4 {
 5     Q_OBJECT
 6
 7
 8 public:
 9     TextTicker(QWidget *parent = nullptr);
10     ~TextTicker();
11
12
13 protected:
14     void paintEvent(QPaintEvent *);
15     void updateIndex();
16
17 private:
18     int m_charWidth; //字符串宽度
19     int m_curIndex;
20     QString m_showText; //需要显示的字符串
21 public:
22
23     QString getText()
24     {
25         return  m_showText;
26     }
27 };

接下来是源文件

这里预编译这里注意添加上自己的头文件  #include "xxx.h"

#include <QPainter>
#include <QTimer>TextTicker::TextTicker(QWidget *parent): QLabel(parent)
{
//    setMinimumWidth(200);
//    setMinimumHeight(40);m_curIndex = 0;//当前文字下标值m_showText = tr("Welcome to the image processing software of Star Dragon Company");//显示的文字m_charWidth = fontMetrics().width("a");//每个字符的宽度QTimer *timer = new QTimer(this);connect(timer, &QTimer::timeout, this, &TextTicker::updateIndex);timer->start(100);
}TextTicker::~TextTicker()
{}void TextTicker::paintEvent(QPaintEvent *)
{QPen pen;pen.setColor(QColor(255,0,255));pen.setStyle(Qt::DashDotDotLine);QFont font("楷体",14,QFont::Bold);QPainter painter(this);painter.setPen(pen);painter.setFont(font);painter.drawText(0, 15, m_showText.mid(m_curIndex));painter.drawText(width() - m_charWidth*m_curIndex, 15, m_showText.left(m_curIndex));
}void TextTicker::updateIndex()
{update();m_curIndex++;if (m_curIndex*m_charWidth > width())m_curIndex = 0;
}

  到这里基本就完成了。

接下来要做的就是在gui拖入一个laber控件。右键点击提升。类名填写我们创建的类,注意。如果头文件跟类名不一致,注意对应填写即可。

然后运行。试试效果把。

自己做项目中遇到的记录下来。

转载于:https://www.cnblogs.com/787959687-freedom/p/10710863.html

关于qt 实现laber上面的文字滚动相关推荐

  1. 如何用photoshop切图并去掉图片上面的文字

    公司没有美工,最近一个页面要做样式,只有自己上了,从来没做过,这下可就头大了.去网上查了一下,再加上问了一些人,现在总结一下. 一.如何用photoshop切图. ps里面有一个切片工具(slice ...

  2. 如何把图片上面的文字转换成word-OCR文字识别软件

    解析如何把图片上面的文字转换成word 有没有小伙伴们为百度文库里面的资源下载需要下载券感到坑爹,特别是现下下载资源紧缺,各个网站配合网打的行动,导致很多优秀网站现在没法下载资源,尤其是新浪爱问共享资 ...

  3. STM32之在oled上实现文字滚动

    本文内容:本文主要介绍怎么通过单片机控制7针的oled上实现文字滚动. 一.oled与SPI简介 (一)oled简介 有机发光二极管(OrganicLight-Emitting Diode,OLED) ...

  4. 用图片文字提取大师提取图片上面的文字

    用图片文字提取大师提取图片上面的文字 扫描图片相信大家都不会陌生,很多的纸质文件或是其它东西,我们都可以通过扫描仪进行扫描,然后以扫描图片的方式出现在电脑中.但是这些扫描图片中的文字不能随意的进行编辑 ...

  5. 【9001】如何免费下载或截取网页上面的文字?

    问题背景:[9001]如何免费下载或截取网页上面的文字? 1.当我们去网页上游览文章或者写啥啥论文需要截取文章文字时候,点击复制,这个时候让付费下载,嘿嘿,长这么大付费下载是不可能付费下载的,自己敲, ...

  6. 怎么把加密的PDF上面的文字复制下来?

    最近在看springboot的官方文档,因为下载pdf被加密,代码等文字无法复制,于是捣鼓了一个方法,亲测有效. 方法:用谷歌浏览器打开pdf文档,选择打印,另存为,自己命名一个文件,然后下载完打开发 ...

  7. 爬虫requests如何提取图片_如何提取图片上的文字(办公技巧)

    是夜,公寓里,一道黑影闪过窗前,对面楼顶传来一声凄厉的猫叫声. 王美丽一个机灵,目中闪过一丝恐惧. 她面前的电脑里,正在播放<午夜凶铃>. 阴森恐怖的配音,让她全身发冷,感觉后脊梁有一股凉 ...

  8. CSS实现背景透明而背景上的文字不透明

    在我们设计制作一些网页的时候可能会用到半透明的效果,首先我们可能会想到用PNG图片处理,当然这是一个不错的办法,唯一的兼容性问题就是ie6 下的BUG,但这也不困难,加上一段js处理就行了.但假如我们 ...

  9. java复制屏幕文本内容_网页上的文字内容不给复制?电脑老司机教你输入一串代码,轻松复制...

    原标题:网页上的文字内容不给复制?电脑老司机教你输入一串代码,轻松复制 我们有时候需要一些资料就会去网上查资料,有的时候我们需要把这些资料的文字给复制下来.但并不是所有的资料都能直接复制的,不是登陆账 ...

最新文章

  1. springboot整合swagger2之最佳实践
  2. linux m4a 转换成 mp3
  3. 经典算法——KMP模式匹配
  4. java实现账号单一ip登录,使用Java实现简单后台访问并获取IP示例
  5. 信息安全工程师-AES密码技术及XOR图像遮盖技术(JavaC++)
  6. fabricjs上手指南
  7. 条件include_10_函数原型、条件编译与重复定义错误 | C语言入门
  8. 使用代理为业务操作添加安全检测
  9. humid vs wet vs moist
  10. HttpUtil工具
  11. 罗技G29方向盘与Unity的连接交互
  12. 十天入门php,十天学会PHP之第十天
  13. 大地测量学基础(复习)第二部分
  14. java 求梯形面积
  15. C++ stack用法
  16. 一起学JAVA之【基础篇】4种默认线程池介绍
  17. 《精读 Mastering ABP Framework》教程发布
  18. 阿宇相机智能双光配置
  19. 113.输入10个国家的名字,按由小到大排序
  20. 球球速刷LC--BFS DFS 二轮

热门文章

  1. kali linux CC搭建教程,kali linux初次安装配置
  2. H5 --(解决)ios的webview中上/下拉露出黑灰色背景问题
  3. java准确读取word文件页数
  4. gta5结局杀老崔我哭了_GTA5:玩家眼中的重情义,剧情中变定时炸弹,崔佛为何是个疯子?...
  5. java分词主谓宾_英语五种结构的句子(主谓 主谓宾 主谓宾宾补 主系表 主谓双宾)谁给我讲一下…...
  6. 到底什么是超融合呢?
  7. spring中MessageSource的配置使用方法3--ResourceBundleMessageSource
  8. C++ XML操作类
  9. 网工笔记(三):IP Multicast组播技术
  10. 计算机视觉 || 手写字体检测