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

目录
相关文章
|
4月前
QT中按钮格式QSS代码
QT中按钮格式QSS代码
|
1月前
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Slider的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Slider的使用及说明
122 2
|
1月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
43 2
MFC基本控件3-Button的风格
MFC基本控件3-Button的风格
MFC基本控件4-列表框控件List Box
MFC基本控件4-列表框控件List Box
|
1月前
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明
162 0
|
1月前
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Text Edit的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Text Edit的使用及说明
17 0
|
1月前
【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Check Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Check Box的使用及说明
30 0
|
1月前
|
Windows
【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明
【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明
29 0
|
1月前
【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Radio Button的使用及说明
【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Radio Button的使用及说明
189 0