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博客

目录
相关文章
|
5月前
|
Android开发 开发者
Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。
【6月更文挑战第26天】Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。要更改主题,首先在该文件中创建新主题,如`MyAppTheme`,覆盖所需属性。然后,在`AndroidManifest.xml`中应用主题至应用或特定Activity。运行时切换主题可通过重新设置并重启Activity实现,或使用`setTheme`和`recreate()`方法。这允许开发者定制界面并与品牌指南匹配,或提供多主题选项。
75 6
|
6月前
|
移动开发 小程序 JavaScript
uView Text 文本
uView Text 文本
51 1
|
JavaScript 前端开发
mui 日期控件的用法
mui 日期控件的用法
178 0
|
前端开发 JavaScript 程序员
基于H5+css+JavaScript实现button悬停时边框滑动
基于H5+css+JavaScript实现button悬停时边框滑动
159 0
基于H5+css+JavaScript实现button悬停时边框滑动
|
Web App开发 索引
Qt之QTableView显示富文本
简述 对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本的显示。 可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是行不通的,那么我们如何去显示呢?请看正文。 简述 效果 源码 分析 效果 源码 下面我们使用QAbstrac
1040 0
|
数据可视化 算法 计算机视觉
qml开发笔记(六):可视化元素Text、Window
qml开发笔记(六):可视化元素Text、Window
qml开发笔记(六):可视化元素Text、Window
sketch 如何规范的设置自己的字体样式库( Text styles )
sketch 如何规范的设置自己的字体样式库( Text styles )
sketch 如何规范的设置自己的字体样式库( Text styles )
Qt-QML-自定义个自己的文本Text
好久都没有正经的更新自己的文章了,这段时间也辞职了,听了小爱的,准备买个碗,自己当老板,下面请欣赏效果图
122 0
Qt-QML-自定义个自己的文本Text
|
Android开发
react-native 安卓手机Text组件文字显示不全问题
react-native 安卓手机Text组件文字显示不全问题
|
自然语言处理
Qt-QML-Slider-滑块-Style
感觉滑块这个东西,可以算是一个基本模块了,在我的项目中也有这个模块,今天我将学一下一下滑块的使用以及美化工作。
381 0
Qt-QML-Slider-滑块-Style