qml text跑马灯实现

简介: qml text跑马灯实现
import QtQuick 2.15
 
Item {
    id: root
    property alias text: textMetrics.text
    property alias elide: textMetrics.elide
    property alias font: textMetrics.font
    property alias color: marqueeText.color
 
    clip: true
    height: marqueeText.height
 
    TextMetrics {
        id: textMetrics
        elide: Text.ElideRight
        elideWidth: root.width
    }
 
    Text {
        id: marqueeText
        text: textMetrics.elidedText
        font: textMetrics.font
 
        PropertyAnimation on x {
            id: marqueeAnimator
            running: false
            from: marqueeText.width
            to: -(textMetrics.width + 2)
            loops: Animation.Infinite
        }
 
        function startMarqueeAnimator() {
            if (marqueeAnimator.running) {
                return
            }
            if (textMetrics.width > textMetrics.elideWidth) {
                marqueeAnimator.duration = textMetrics.text.length * 300
                marqueeText.text = textMetrics.text
                marqueeAnimator.start()
            }
        }
 
        function stopMarqueeAnimator() {
            marqueeAnimator.stop()
            marqueeText.x = 0
            marqueeText.text = textMetrics.elidedText
        }
    }
 
    MouseArea {
        id: mouseArea
        anchors.fill: parent
        hoverEnabled: true
        propagateComposedEvents: true
 
        onEntered: {
            marqueeText.startMarqueeAnimator()
        }
        onExited: {
            marqueeText.stopMarqueeAnimator()
        }
        onClicked: {
            mouse.accepted = false
        }
    }
}

参考:

QML实现跑马灯_不爱debug的BugMaker的博客-CSDN博客

QFontMetricsF Class | Qt GUI 5.15.9

Qt5.12 QML——TextMetrics字体长度的测量指标_溪渣渣_梁世华的博客-CSDN博客

目录
相关文章
|
Ubuntu 安全 Linux
Linux(34)Rockchip RK3568 Ubuntu22.04和Debian 10上配置远程桌面工具
Linux(34)Rockchip RK3568 Ubuntu22.04和Debian 10上配置远程桌面工具
1641 0
|
机器学习/深度学习 并行计算 PyTorch
百度搜索:蓝易云【Pytorch和CUDA版本对应关系】
请注意,上述版本对应关系只是示例,并非详尽无遗。实际上,PyTorch的每个版本通常会支持多个CUDA版本,而具体支持的CUDA版本也可能因操作系统、硬件配置等因素而有所不同。因此,在使用PyTorch时,建议参考PyTorch官方文档或社区支持的信息,以获取最准确和最新的PyTorch与CUDA版本对应关系。
472 2
|
6月前
|
人工智能 自然语言处理 安全
AI尝鲜:dify搭建AI对话机器人
本实验介绍如何在Dify中设置知识库并创建智能应用作为对话机器人,实现AI对话功能。例如查询电动汽车电池过充电保护试验的环境温度条件。实验步骤包括:一、安装Dify并通过计算巢部署;二、设置模型供应商,选择通义千问并配置API KEY;三、创建知识库,导入文件并设置文本分段与清洗规则;四、创建智能体,添加知识库和模型;五、与智能体对话,测试查询功能。通过这些步骤,您可以构建一个基于专有知识库的AI对话系统。
|
关系型数据库 MySQL Linux
Qt连接Mysql出现问题(一):“Driver not loaded Driver not loaded“
第一眼看见这张图我也觉得很奇怪,显示有QMYSQL但是又说没有,这不自相矛盾吗!
2624 4
|
12月前
|
人工智能 Oracle 关系型数据库
2024年客户口碑最好的CRM系统
本文介绍了客户关系管理(CRM)系统的重要性及评价标准,如功能性、用户体验、可靠性和稳定性、扩展性、性价比、用户评价、数据安全性和客户满意度等。随后,详细推荐了国内外8款主流CRM系统,包括销售易、简道云CRM、浪潮CRM、励销云、百应CRM、千百客CRM、创蓝CRM、企点CRM,以及国际知名的Salesforce、Microsoft Dynamics 365和Oracle CRM,帮助企业根据自身需求选择最合适的CRM解决方案。
|
Java 编译器 程序员
【c++】基础知识——快速入门c++
本文介绍了C++的基础知识,包括C++相对于C语言的新特性,如面向对象编程、引用、函数重载、模板库STL等。文章通过“Hello World”程序展示了C++的基本语法,并详细解释了命名空间、输入输出、缺省参数、函数重载、内联函数和空指针的概念。通过实例代码和运行结果,帮助读者快速掌握C++的核心知识点。
322 9
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
编解码 监控 网络协议
如何用魔法般的步骤实现RTSP推送H.264与H.265(HEVC),打造震撼视听盛宴,让每一帧都充满魔力!
【9月更文挑战第3天】实现RTSP流媒体服务推送H.264和H.265编码视频是现代视频监控及直播平台的关键技术。本文详细介绍环境搭建、编码配置及服务器与客户端实现方法。首先,通过FFmpeg捕获视频并编码成RTSP流,接着使用VLC等工具接收播放。此外,还提供了C++示例代码,演示如何利用libv4l2和FFmpeg自定义服务器端实现。希望本文能帮助读者成功搭建RTSP视频流系统。
2264 1
|
XML 前端开发 数据库
echarts饼图前后端代码SpringCloud+Vue3
echarts饼图前后端代码SpringCloud+Vue3
168 0
|
SQL 存储 关系型数据库
常见的BUG---2、Hive中文注释乱码解决办法
常见的BUG---2、Hive中文注释乱码解决办法