【Qt QML 入门】TextEdit

TextEdit可以显示多行可编辑的格式化文。默认是无边框的,可以和父控件完美融合。

【Qt QML 入门】TextEdit_第1张图片

import QtQuick
import QtQuick.Window
import QtQuick.Controls

Window {
    id: win
    width: 800
    height: 600
    visible: true

    TextEdit {
        id: textEdit
        anchors.centerIn: parent
        text: "Hello,\nWorld!\nThis is a TextEdit control!"
        font.family: "Arial"
        font.pixelSize: 20
        color: "black"
        selectionColor: "blue"
    }
}

将 focus 属性设置为 true 可以使 TextEdit 组件接收键盘焦点。当点击或使用键盘导航到 TextEdit 时,焦点会自动移动到该组件,允许开始输入文本。

常用属性:

bottomPadding : real
leftPadding : real
padding : real
rightPadding : real
topPadding : real

设置内容周围内边距的填充。这个空间是除了contentWidth和contenttheight之外保留的

effectiveHorizontalAlignment : enumeration
horizontalAlignment : enumeration
verticalAlignment : enumeration

用于设置文本在 TextEdit 组件宽度和高度内的水平和垂直对齐方式。

horizontalAlignment 属性控制文本的水平对齐方式。

  • TextEdit.AlignLeft(默认值):文本左对齐
  • TextEdit.AlignRight:文本右对齐
  • TextEdit.AlignHCenter:文本水平居中
  • TextEdit.AlignJustify:文本两端对齐

verticalAlignment 属性控制文本的垂直对齐方式。

  • TextEdit.AlignTop(默认值):文本顶部对齐
  • TextEdit.AlignBottom:文本底部对齐
  • TextEdit.AlignVCenter:文本垂直居中

当使用附属性 LayoutMirroring::enabled 来镜像应用程序布局时,文本的水平对齐方式也会被镜像,但horizontalAlignment 属性值保持不变。

tabStopDistance : real

制表位之间的默认距离。默认情况下,tabStopDistance的值为0,这意味着焦点移动的距离是固定的,通常与文本输入框的宽度或高度有关。但是,您可以通过设置tabStopDistance属性来自定义焦点移动的距离。

textFormat : enumeration

文本显示的方式。

  • extEdit.PlainText (默认): 所有的样式标签都被视为普通文本。例如,如果尝试在TextEdit中使用HTML标签或样式,它们将不会按预期显示,而会被视为普通文本。
  • TextEdit.AutoText: 通过Qt的mightBeRichText()的启发式方法检测。Qt会尝试自动检测文本是否可能是富文本,但具体行为可能依赖于实际内容。
  • TextEdit.RichText: 富文本,a subset of HTML 4。这意味着TextEdit支持HTML 4中的一部分标签,允许在文本中使用一些基本的样式和格式。
  • TextEdit.MarkdownText: CommonMark格式,加上适用于表格和任务列表的GitHub扩展(从5.14版本开始)。这意味着TextEdit支持Markdown格式,允许您使用Markdown语法来格式化文本。

textMargin : real

用于指定在 TextEdit 组件中文本周围的边距,单位是像素。这个边距定义了文本与 TextEdit 组件边界之间的空间大小。

wrapMode : enumeration

用于控制文本的换行行为。

  • TextEdit.NoWrap(默认值) - 不进行换行。如果文本中没有足够的换行符,那么implicitWidth会超过设定的宽度。
  • TextEdit.WordWrap - 只在单词边界进行换行。如果一个单词太长,implicitWidth会超过设定的宽度。
  • TextEdit.WrapAnywhere - 在任何位置进行换行,即使是在单词中间。
  • TextEdit.Wrap - 如果可能,换行发生在单词边界;否则,它会在行的适当位置发生,即使是在单词中间。

其他属性可以见上一篇博客中对TextInput的解释。

你可能感兴趣的:(qt,qml)