[QML] Text和Label

张开发
2026/4/10 9:28:11 15 分钟阅读

分享文章

[QML] Text和Label
一 TextText轻量级的“画笔”Text属于QtQuick模块原生 QML它是所有文本显示的基础。特点极度轻量性能开销最小。无内置背景就像你刚才遇到的它本身没有背景属性需要靠外部(比如Rectangle)包裹。适用场景简单的静态说明文字。需要极致性能的大量文本滚动列表。自定义程度极高完全不想受控件样式干扰的场景。import QtQuick import QtQuick.Controls Window { width: 400 height: 300 visible: true color: #F0F0F0 Rectangle { x: 100 y: 100 width: 200 height: 200 color: #333333 radius: 10 Text { id: text anchors.fill: parent anchors.margins: 10 text: qsTr(TEXT) font.family: 黑体 font.pixelSize: 30 color: red // 换行 wrapMode: Text.WrapAnywhere // 省略 horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } }二 LabelLabel属于QtQuick.Controls模块通常指 Controls 2它是专门为构建现代 UI 设计的。特点继承自 TextText有的属性它都有如font,color,wrapMode。主题集成它会自动根据系统主题如 Windows 的深色模式调整文字颜色除非你强制指定了颜色。自带背景支持可以直接通过background属性设置背景圆角、图片、渐变色内边距 (Padding)自带padding属性文字不会紧贴边缘排版更美观。省略与截断对文本超出范围的处理如显示省略号...支持得更好。适用场景表单标签、标题、状态显示。需要跟随系统字体大小或主题的界面。需要给文字加背景如胶囊状标签import QtQuick import QtQuick.Controls Window { width: 400 height: 300 visible: true color: #F0F0F0 Label { padding: 20 width: 140 height: 140 text: qsTr(TEXT) font.family: 黑体 font.pixelSize: 30 color: red wrapMode: Text.WrapAnywhere horizontalAlignment: Label.AlignHCenter verticalAlignment: Label.AlignVCenter // 设置背景属性 background: Rectangle { color: #333333 radius: 10 } } }

更多文章