TextEdit QML 类型

显示多行可编辑格式化文本。 更多...

导入语句import QtQuick
继承

Item

属性

信号

方法

详细描述

TextEdit项显示一个可编辑、格式化的文本块。

它可以显示纯文本和富文本。例如

TextEdit {
    width: 240
    text: "<b>Hello</b> <i>World!</i>"
    font.family: "Helvetica"
    font.pointSize: 20
    color: "blue"
    focus: true
}

focus 设置为 true 可使 TextEdit 项目接收到键盘焦点。

请注意,TextEdit 不实现滚动、跟随光标或其他特定于外观和行为的功能。例如,要添加跟随光标的可滑动滚动

Flickable {
     id: flick

     width: 300; height: 200;
     contentWidth: edit.contentWidth
     contentHeight: edit.contentHeight
     clip: true

     function ensureVisible(r)
     {
         if (contentX >= r.x)
             contentX = r.x;
         else if (contentX+width <= r.x+r.width)
             contentX = r.x+r.width-width;
         if (contentY >= r.y)
             contentY = r.y;
         else if (contentY+height <= r.y+r.height)
             contentY = r.y+r.height-height;
     }

     TextEdit {
         id: edit
         width: flick.width
         focus: true
         wrapMode: TextEdit.Wrap
         onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
     }
 }

特定外观和感觉可能使用平滑滚动(例如,使用 SmoothedAnimation),可能具有可见的滚动条,或滚动条淡入以显示位置等。

剪贴板支持通过 cut()、copy() 和 paste() 函数提供。除将由 selectByMouse 设置为 false 外,可以按常规方式使用鼠标选择文本;可以通过 Shift+箭头 组合键使用键盘选择文本,除非将 selectByKeyboard 设置为 false。要程序性地选择文本,可以设置 selectionStartselectionEnd 属性,或使用 selectAll() 或 selectWord()。

可以使用 positionAt() 和 positionToRectangle() 根据 cursor 位置(从文档开始处的字符)和像素点进行转换。

参见 TextTextInputTextArea 以及 Qt Quick Controls - Text Editor

属性文档

effectiveHorizontalAlignment : 枚举 [只读]

horizontalAlignment : 枚举

verticalAlignment : 枚举

设置 TextEdit 项目内文本的水平和垂直对齐方式。默认情况下,文本对齐方式遵循文本的自然对齐方式,例如从左到右读取的文本将与其左侧对齐。

horizontalAlignment 的有效值包括

常量描述
TextEdit.AlignLeft左对齐,右边有悬殊边缘(默认)
TextEdit.AlignRight将每行对齐到右边,左边有悬殊边缘
TextEdit.AlignHCenter将每行对齐到中间
TextEdit.AlignJustify将每行向两边对齐,必要时扩展单词

verticalAlignment 的有效值包括

常量描述
TextEdit.AlignTop从项目的顶部开始(默认)
TextEdit.AlignBottom将最后一行对齐到底部,其他行在上面
TextEdit.AlignVCenter垂直居中对齐

使用附加属性 LayoutMirroring::enabled 反转应用程序布局时,文本的水平对齐也会被反转。但是,属性 horizontalAlignment 将保持不变。要查询 TextEdit 的有效水平对齐,请使用只读属性 effectiveHorizontalAlignment


bottomPadding : 实数

leftPadding : 实数

padding : 实数

rightPadding : 实数

topPadding : 实数

这些属性保存了围绕内容的空间填充。这个空间是额外预定的,除了 contentWidthcontentHeight 之外。


activeFocusOnPress : 布尔值

是否在鼠标点击时让 TextEdit 获得活动焦点。默认设置为 true。


baseUrl : URL

该属性指定一个基本 URL,用于解析文本中的相对 URL。

默认值是实例化 TextEdit 项的 QML 文件的 URL。


canPaste : 布尔值 [只读]

如果 TextEdit 可写,并且剪切板的内容适合粘贴到 TextEdit 中,则返回 true。


canRedo : 布尔值 [只读]

如果 TextEdit 可写且存在可以重做的已撤销操作,则返回 true。


canUndo : 布尔值 [只读]

如果 TextEdit 可写且存在可以撤销的先前的操作,则返回 true。


color : 颜色

文本颜色。

// green text using hexadecimal notation
TextEdit { color: "#00FF00" }
// steelblue text using SVG color name
TextEdit { color: "steelblue" }

contentHeight : 实数 [只读]

返回文本的高度,包括文本超出设置高度的部分高度。


contentWidth : 实数 [只读]

返回文本的宽度,包括由于溢出不能换行而覆盖的宽度。如果设置了 wrapMode,则此情况会发生。


cursorDelegate : 组件

TextEdit 中光标的委托。

如果为 TextEdit 设置了 cursorDelegate,则此委托将用于绘制光标而不是标准光标。当需要光标时,委托实例将被文本编辑创建和管理,委托实例的 x 和 y 属性将设置为在当前字符左上角之前的一个像素。

注意,委托组件的根项必须是 QQuickItem 或其派生项。


cursorPosition : 整数

TextEdit 中光标的位置。光标位于字符之间。

注意:在这个情况下,“字符”指的是 QChar 对象的字符串,因此是 16 位 Unicode 字符,并且位置被认为是这个字符串中的索引。这不一定对应于书写系统中的单个图形符号,因为单个图形符号可能由多个 Unicode 字符表示,例如代理对、语言连字或变音符号。


cursorRectangle : 矩形 [只读]

在文本编辑中渲染标准文本光标的位置矩形。只读。

自定义cursorDelegate的位置和高度在cursorRectangle改变时会自动更新。代理对象的宽度不受光标矩形变化的影响。


cursorSelection : QtQuick::TextSelection [只读,初步]

此属性正在开发中,可能随时更改。

此属性是一个对象,用于提供当前选中文本(如有)和文本光标的相关属性。

此属性从Qt 6.7开始引入。

另请参阅selectedTextselectionStartselectionEnd


cursorVisible : bool

如果为true,则文本编辑会显示光标。

当文本编辑获得活动焦点时,此属性会设置和解除,但也可以直接设置(例如,如果KeyProxy可能将其键转发给它,则很有用)。


font.bold : bool

设置字体是否为粗体。


font.capitalization : enumeration

设置文本的格式化。

常量描述
Font.MixedCase不应用大写化更改
Font.AllUppercase改变文本以使用全部大写字符类型渲染
Font.AllLowercase改变文本以使用全部小写字符类型渲染
Font.SmallCaps改变文本以使用小写字母渲染
Font.Capitalize改写文本,使其每单词的首字母大写
TextEdit { text: "Hello"; font.capitalization: Font.AllLowercase }

font.family : string

设置字体的家族名称。

家族名称不区分大小写,可以选择包括造字厂名称,如 "Helvetica [Cronyx]"。如果家族可以从多个造字厂获取,且未指定造字厂,则选择任意一个造字厂。如果家族不可用,将使用字体匹配算法来设置一个家族。


font.features : object [自6.6起]

当根据features中的内容确定文本形状时,将整数值应用于特定OpenType功能。这提供了对字体形状过程的更高级访问,并可以用来支持在API中未提到的字体功能。

字体功能由四个字母的标记到整数值的映射表示。在这种情况下,这个整数值通常代表一个布尔值:零值表示关闭该功能,非零值表示打开。对于某些字体功能,其含义可能不同。例如,当应用于salt功能时,值是一个指定要使用哪种风格的替代方案的索引。

例如,frac字体功能将使用斜杠分隔的分数(如1/2)进行不同的表示。通常这会涉及烘焙整个分数到一个字符宽度(如½)。

如果字体支持frac功能,则可以在形状器中启用,如下面的代码所示

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1 }
}

可以在同一映射中为多个功能分配值。例如,如果您还希望禁用字体的字距调整,可以明确禁用它,如下所示

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1, "kern": 0 }
}

您还可以在对象中收集字体属性

Text {
    text: "One divided by two is 1/2"
    font: {
        family: "MyFractionFont"
        features: { "frac": 1, "kern": 0 }
    }
}

注意:默认情况下,Qt会根据其他字体属性启用和禁用某些字体功能。特别是,kern功能将根据font.kerning属性启用/禁用QFont。此外,如果设置了font.letterSpacing,则所有连字功能(ligacligdlighlig)将禁用,但仅限于连字用于装饰的书写系统。对于需要连字符的书写系统,功能将保持默认状态。使用font.features设置的值将覆盖默认行为。例如,如果"kern"设置为1,则不管font.kerning属性是否设置为false,都会始终启用字距调整。同样,如果设置为0,则始终禁用。

这个属性是在Qt 6.6中引入的。

另请参阅:QFont::setFeature


font.hintingPreference : 枚举

设置文本的首选光栅化。这是向底层文本渲染系统提示使用特定级别光栅化的提示,其在平台间支持程度不同。有关详细信息,请参阅QFont::HintingPreference文档中的表格。

注意:此属性仅在与渲染类型TextEdit.NativeRendering一起使用时有效。

常量描述
Font.PreferDefaultHinting使用目标平台的默认提示级别。
Font.PreferNoHinting如果可能,渲染不带纹线轮廓的文本。文本布局将是版式的,使用与打印时相同的度量。
Font.PreferVerticalHinting如果可能,渲染不进行水平提示的文本,但垂直方向对齐字符到像素网格。对于字形密度过低,无法准确渲染字符的显示,文本将更加清晰。但由于字符的水平度量未进行提示,文本布局将可缩放以提高硬件(例如打印机)的密度,而不会影响行断行等细节。
Font.PreferFullHinting如果可能,渲染水平和垂直方向都进行提示的文本。文本将被修改以优化目标设备的可读性,但由于度量将取决于文本的目标大小,字符、行断行和其他排版细节的位置将不会缩放,这意味着文本布局可能在不同像素密度的设备上看起来不同。
TextEdit { text: "Hello"; renderType: TextEdit.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

font.italic : 布尔

设置字体是否具有斜体样式。


font.kerning : 布尔

在塑形文本时启用或禁用OpenType字距调整功能。禁用此功能可能会在创建或更改文本时提高性能,但可能会牺牲一些美容功能。默认值是true。

TextEdit { text: "OATS FLAVOUR WAY"; kerning: font.false }

font.letterSpacing : 实数

设置字体的字母间距。

字母间距改变字体中单个字母的默认间隔。正值增加字母间距相应的像素;负值减少间隔。


font.pixelSize : 整数

设置字体大小为像素。

使用此函数会使字体设备相关。使用TextEdit::font.pointSize以设备无关的方式设置字体的大小。


font.pointSize : 实数

设置字体大小为点。点大小必须大于零。


font.preferShaping : bool

有时,字体将对一组字符应用复杂的规则以正确显示。在一些书写系统中,例如梵文,这是为了使文本易于阅读所必需的,但在例如拉丁脚本中,这只是一种外观上的特性。将preferShaping属性设置为false将在不需要时禁用所有这些特性,这将在大多数情况下提高性能。

默认值为true。

TextEdit { text: "Some text"; font.preferShaping: false }

font.strikeout : bool

设置字体是否具有删除线样式。


font.styleName : string

设置字体的样式名称。

样式名称的大小写不敏感。如果已设置,字体将与样式名称而不是字体的属性font.weightfont.boldfont.italic匹配。


font.underline : bool

设置文本是否带下划线。


font.variableAxes : object [since 6.7]

将浮点值应用于可变字体的变量轴。

可变字体提供了一种方法,将多个变体(具有不同的权重、宽度或样式)存储在同一个字体文件中。这些变体以浮点值的形式给出,用于预定义的参数集,称为“可变轴”。特定的实例通常由字体设计师命名,在Qt中,可以使用setStyleName()来选择它们,就像传统的子族一样。

在某些情况下,还可以为不同的轴提供任意值。例如,如果一个字体有一个Regular和Bold子族,你可能会想要一个介于这些之间的重量。然后你可以通过在字体中为“wght”轴提供自定义值来手动请求。

Text {
    text: "Foobar"
    font.family: "MyVariableFont"
    font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
}

如果“wght”轴受字体支持,并且给定值在其定义范围内,则将提供与重量550.0相对应的字体。

许多字体提供了一些标准轴,例如“wght”(权重),“wdth”(宽度),“ital”(斜体)和“opsz”(光学大小)。它们都在字体中定义了各自的范围。例如,“wght”可能从100到900(从QFont::ThinQFont::Black),而“ital”可以从0到1(从不带斜体到完全斜体)。

字体也可以选择定义自定义轴;唯一的限制是名称必须符合QFont::Tag(四个拉丁-1字符的序列)的要求。

默认情况下,没有设置任何变量轴。

注意:为了在Windows上使用变量轴,应用程序必须使用FreeType或DirectWrite字体数据库运行。有关如何选择这些技术的更多信息,请参阅QGuiApplication::QGuiApplication的文档。

此属性从Qt 6.7开始引入。

另请参阅QFont::setVariableAxis


font.weight : int

请求的字体权重。请求的权重必须是介于1和1000之间的整数,或预定义值之一

常量描述
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400(默认)
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900
TextEdit { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

设置字体的单词间距。

单词间距改变单词之间的默认间距。正值通过相应的像素数增加单词间距,而负值相应地减小单词间距。


此属性包含用户悬停在文本中嵌入的链接时的链接字符串。链接必须以富文本或HTML格式存在,链接字符串提供了对特定链接的访问。

另请参阅 linkHoveredlinkAt()。


inputMethodComposing : bool [只读]

该属性表示TextEdit是否正在从输入法接收部分文本输入。

在输入方法组合文本的过程中,输入方法可能依赖于TextEdit的鼠标或键盘事件来编辑或提交临时文本。该属性可以用来确定何时禁用可能干扰输入方法正确操作的回调处理函数。


inputMethodHints : enumeration

为输入法提供有关预期文字编辑内容和如何操作的提示。

值是标志的位组合,如果未设置提示则为 Qt.ImhNone。

影响行为(标志)的标志有

常量描述
Qt.ImhHiddenText应隐藏字符,通常用于输入密码。
Qt.ImhSensitiveData不应存储按文字进入的文本,如预测性用户词典中的任何持久存储中。
Qt.ImhNoAutoUppercase输入方法不应在句子结束时自动切换到大写。
Qt.ImhPreferNumbers优先考虑数字(但不是必需的)。
Qt.ImhPreferUppercase优先考虑大写字母(但不是必需的)。
Qt.ImhPreferLowercase优先考虑小写字母(但不是必需的)。
Qt.ImhNoPredictiveText在键入时不要使用预测文本(即词典搜索)。
Qt.ImhDate文字编辑器充当日期字段。
Qt.ImhTime文字编辑器充当时间字段。

限制输入(排他标志)的标志有

常量描述
Qt.ImhDigitsOnly只允许数字。
Qt.ImhFormattedNumbersOnly只允许数字输入。这包括小数点和负号。
Qt.ImhUppercaseOnly只允许大写字母输入。
Qt.ImhLowercaseOnly只允许小写字母输入。
Qt.ImhDialableCharactersOnly只允许适合电话拨号的字符。
Qt.ImhEmailCharactersOnly只允许适合电子邮件地址的字符。
Qt.ImhUrlCharactersOnly只允许适合URL的字符。

遮罩

常量描述
Qt.ImhExclusiveInputMask此遮罩如果使用了任何排他标志则返回非零值。

length : int [只读]

返回TextEdit项目中的所有纯文本字符的总数。

由于这个数字不包含任何格式化标记,因此可能不等于由text属性返回的字符串长度。

此属性的查询速度可能比查询text属性要快,因为它不需要进行任何复制或转换TextEdit内部字符串数据。


lineCount : int [只读]

返回TextEdit项目中的总行数。


mouseSelectionMode : 枚举

指定如何使用鼠标选择文本。

常量描述
TextEdit.SelectCharacters(默认) 选择内容以单个字符为单位更新。
TextEdit.SelectWords选择内容以整个单词为单位更新。

此属性仅在选择selectByMouse为true时适用。


overwriteMode : 布尔值

用户输入的文本是否将覆盖现有文本。

与其他许多文本编辑器一样,文本编辑小部件可以配置为插入或覆盖用户输入的新文本。

如果此属性设置为true,现有文本将被新文本逐字符覆盖;否则,文本将插入到光标位置,并替换现有文本。

默认情况下,此属性为false(新文本不覆盖现有文本)。


persistentSelection : 布尔值

指定

在失去场景中另一个项的焦点时是否应保持选择可见。默认设置为false。


preeditText : 字符串 [只读]

此属性包含输入法部分的文本输入。

要关闭由预测产生的部分文本,请将

中的Qt.ImhNoPredictiveText标志设置为。

另请参见


readOnly : 布尔值

用户是否可以与TextEdit项进行交互。如果此属性设置为true,用户无法通过交互编辑文本。

默认情况下此属性为false。


renderType : 枚举

覆盖此组件的默认渲染类型。

支持的渲染类型包括

常量描述
TextEdit.QtRendering文本使用每个字符的缩放距离场进行渲染。
TextEdit.NativeRendering文本使用特定于平台的技巧进行渲染。
TextEdit.CurveRendering文本使用直接运行在图形硬件上的曲线光栅化器进行渲染。(从Qt 6.7.0引入。)

选择TextEdit.NativeRendering,如果您希望在目标平台上以本地方式显示文本并且不要求文本变换等高级功能。与NativeRendering渲染类型结合使用这些功能将产生很差的结果,有时候会是像素化的。

TextEdit.QtRendering

的两种硬件加速技术。QtRendering是两者中较快的,但使用更多内存,并在大尺寸下显示渲染错误。在不能提供良好的视觉结果或降低图形内存消耗是优先事项的情况下,应考虑使用作为替代。

默认渲染类型由

确定。


selectByKeyboard : 布尔值

当编辑器可编辑时默认为true,当只读时为false。

如果为true,即使在编辑器为只读的情况下,用户也可以使用键盘选择文本。如果为false,即使编辑器可编辑,用户也不可以使用键盘选择文本。

另请参见 readOnly.


selectByMouse : bool

从 Qt 6.4 版本开始默认为 true

如果 true,则用户可以使用鼠标以常规方式选择文本。

注意: 在 6.4 版本之前的版本中,默认值为 false;但如果您启用了此属性,您也可以通过在触摸屏上拖动手指来选择文本。这会干扰在 Flickable 内使用 TextEdit 时的快速滑动。然而,Qt 自 5.7 版本以来已支持在移动平台和使用 Qt 虚拟键盘的嵌入式平台上的文本选择句柄,通过 QInputMethod。如果手指拖动选择文本而不是滑动父级 Flickable,大多数用户都会感到惊讶。因此,selectByMouse 现在确实意味着它所说的内容:如果 true,您可以通过仅使用鼠标拖动来选择文本,而平台将被期望在触摸屏上提供选择句柄。如果这个改变不适合您的应用程序,您可以设置 selectByMousefalse,或者导入较老的 API 版本(例如 import QtQuick 6.3)以恢复之前的操作。将导入版本以改变行为的方式的选项将在 later 版本的 Qt 中被删除。


selectedText : string [只读]

此只读属性提供了当前文本编辑中选定的文本。

它等同于以下代码片段,但更快,更易于使用。

//myTextEdit is the id of the TextEdit
myTextEdit.text.toString().substring(myTextEdit.selectionStart,
        myTextEdit.selectionEnd);

selectedTextColor : color

用于选定的选中文本颜色。


selectionColor : color

用于在选定内容后面的文本高亮色。


selectionEnd : int [只读]

当前选定内容中最后一个字符之后的光标位置。

这是一个只读属性。要更改选择,请使用 , selectAll(),或 selectWord()。

另请参见 selectionStartcursorPosition、和 selectedText


selectionStart : int [只读]

当前选定内容中第一个字符之前的光标位置。

这是一个只读属性。要更改选择,请使用 , selectAll(),或 selectWord()。

另请参见 selectionEndcursorPosition、和 selectedText


tabStopDistance : real

tab 锁定间的默认距离,以设备为单位。

另请参见 QTextOption::setTabStopDistance


text : string

要显示的文本。如果文本格式是自动文本,文本编辑将自动确定文本是否应被视为富文本。此确定是通过 Qt::mightBeRichText() 来完成的。然而,Markdown 的检测不是自动的。

text属性主要适用于设置初始内容和处理相对较小的文本内容的变化。append()、insert()和remove()方法提供更细致的控制,特别是在修改大量富文本内容时,性能显著提升。

请注意,有些键盘使用预测功能。在这种情况下,通过输入法组成的文本不属于此属性。与预测相关的文本部分会被加下划线,并存储在preeditText属性中。

如果您使用了TextDocument::source来加载文本,您可以从此属性中检索已加载的文本。在这种情况下,您可以将textFormat更改为执行将改变text属性值的格式转换。例如,如果textFormatRichTextAutoText,并且您加载了一个HTML文件,然后将其更改为MarkdownText,则text属性将包含从HTML到Markdown的转换。

另请参阅 clear(),preeditTexttextFormat.


textDocument : TextDocument [只读]

返回此TextEditQQuickTextDocument。自Qt 6.7起,它具有加载和保存文件的功能。它还可以在C++中用作访问底层QTextDocument实例的手段,例如安装QSyntaxHighlighter

另请参阅 QQuickTextDocument.


textFormat : 枚举

text属性应如何显示。

支持的文字格式有

常量描述
TextEdit.PlainText(默认)将所有样式标签视为纯文本
TextEdit.AutoText通过Qt::mightBeRichText()启发式方法检测或检测TextDocument::source的文件格式
TextEdit.RichTextHTML 4的子集
TextEdit.MarkdownTextCommonMark 和GitHub的表格和任务列表扩展(自5.14起)

默认为TextEdit.PlainText。如果将文本格式设置为TextEdit.AutoText,则文本编辑将自动确定是否应将文本视为富文本。如果设置了text属性,此确定将使用Qt::mightBeRichText(),它可以检测文本第一行上的HTML标签的存在,但不能区分Markdown和纯文本。如果设置了TextDocument::source属性,此确定将基于文件的MIME类型

Column {
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.AutoText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.RichText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.PlainText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.MarkdownText
        text: "**Hello** *World!*"
    }
}

使用TextEdit.MarkdownText时,由GitHub复选框扩展生成的复选框可以交互式检查。

如果设置了 TextDocument::source 属性,则在加载后改变 textFormat 属性将导致从检测到的格式转换为请求的格式。例如,您可以在这两种格式之间进行转换:HTML 和 Markdown。但是,如果您加载了其中任何一种“丰富”格式并然后将 textFormat 设置为 PlainText,便视 TextEdit 会显示原始标记。因此,合适的绑定(例如,到一个可切换控制的)可以允许用户在“原始”和 WYSIWYG 编辑之间来回切换。

注意:在 WYSIWYG 模式下交互式地输入标记或 markdown 格式不被支持;但您可以将格式切换到 PlainText,进行更改,然后切换回正确的 textFormat

注意:使用 Text.MarkdownText 以及所支持的 HTML 子集,某些装饰元素不会像在网页浏览器中那样渲染

  • 代码块使用 默认等宽字体,但不在周围有高亮框
  • 块引用向右缩进,但旁边没有垂直线

textMargin : 实数

TextEdit 中文本周围的边距(以像素为单位)。


wrapMode : 枚举

将此属性设置为将该文本包裹到 TextEdit 项的宽度。如果已设置了显式宽度,则文本才会进行换行。

常量描述
TextEdit.NoWrap(默认) 不会执行换行。如果文本中不包含足够的换行符,则 implicitWidth 将超过设置宽度。
TextEdit.WordWrap仅对单词边界进行换行。如果单词太长,则 implicitWidth 将超过设置宽度。
TextEdit.WrapAnywhere在行上的任何位置进行换行,即使它出现在单词的中间。
TextEdit.Wrap如果可能,则在单词边界处进行换行;否则,将在行的适当位置进行换行,即使在单词中间也是如此。

默认为 TextEdit.NoWrap。如果您设置了宽度,请考虑使用 TextEdit.Wrap


信号文档

editingFinished()

当文本编辑失去焦点时,会发出此信号。

注意:对应的处理程序是 onEditingFinished


linkActivated(字符串 链接)

当用户在文本中单击嵌入的链接时,会发出此信号。链接必须在富文本或 HTML 格式,并且 链接 字符串提供对特定链接的访问。

注意:对应的处理程序是 onLinkActivated


linkHovered(字符串 链接)

当用户在文本中的链接上悬停时,会发出此信号。链接必须是富文本或 HTML 格式,并且 链接 字符串提供对特定链接的访问。

注意:对应的处理程序是 onLinkHovered

另请参阅:hoveredLinklinkAt()。


方法文档

void append(字符串 文本)

将包含 文本 的新段落追加到 TextEdit 的末尾。

为了不插入新段落来追加,改为调用 myTextEdit.insert(myTextEdit.length, text)


clear()

清除文本编辑的内容并重置输入方法的部分文本输入。

使用此方法代替将 text 属性设置为空字符串。

另请参阅QInputMethod::reset()。


copy()

将当前选中的文本复制到系统剪贴板。


cut()

将当前选中的文本移动到系统剪贴板。


deselect()

删除活动文本选择。


string getFormattedText(int start, int end)

返回起始位置 start 和结束位置 end 之间的文本部分。

返回的文本将根据 textFormat 属性进行格式化。


string getText(int start, int end)

返回起始位置 start 和结束位置 end 之间的文本部分。

返回的文本不包括任何富文本格式。


insert(int position, string text)

text 插入到 TextEditposition 位置。


isRightToLeft(int start, int end)

如果位置 startend 之间编辑文本的自然阅读方向是从右到左,返回 true。


linkAt(real x, real y)

返回内容坐标点 x, y 的链接字符串,或如果该点不存在链接,则返回空字符串。

另请参阅hoveredLink


moveCursorSelection(int position, SelectionMode mode)

将光标移动到 position 位置,并根据可选的 mode 参数更新选择。 (要仅移动光标,设置 cursorPosition 属性。)

当调用此方法时,还会设置 selectionStartselectionEnd(之前的光标位置所在的任意一个),将其设置为指定位置。这允许您轻松扩展和缩小选定的文本范围。

选择模式指定选择是按字符还是按单词更新。如果没有指定,则选择模式将默认为 TextEdit.SelectCharacters

常量描述
TextEdit.SelectCharactersselectionStartselectionEnd(之前的光标位置所在的任意一个)设置为指定位置。
TextEdit.SelectWords设置 selectionStartselectionEnd 以包括从指定位置到先前光标位置的单词。包含部分位于范围内的单词。

例如,考虑以下调用序列

cursorPosition = 5
moveCursorSelection(9, TextEdit.SelectCharacters)
moveCursorSelection(7, TextEdit.SelectCharacters)

这将使光标移动到位置 5,将选择结束从 5 扩展到 9,然后将选择结束从 9 收回到 7,从而选择位置 5 到 7 的文本(第 6 和第 7 个字符)。

使用 TextEdit.SelectWords 的相同序列将在位置 5 前后或之前扩展选择开始,并将选择结束扩展到位置 9 或之后的单词边界。


paste()

替换当前选中文本为系统剪贴板中的内容。


int positionAt(int x, int y)

返回最近的文本位置,该位置在像素位置(x, y)。

位置0在第一个字符之前,位置1在第一个字符之后但第二个字符之前,以此类推,直到位置text.length,这是所有字符之后。


rectangle positionToRectangle(position)

返回在文本中给定position的位置的矩形。x、y和高度属性对应于描述该位置的游标。


redo()

如果重做可用,则重做最后一个操作。


string remove(int start, int end)

TextEdit中移除从startend位置的文本段落。


select(int start, int end)

使从startend的文本被选中。

如果开始或结束超出了范围,则不会更改选择。

调用此方法后,selectionStart将变成较小的一个,而selectionEnd将变成较大的一个(无论传递给此方法的顺序如何)。

另请参阅selectionStartselectionEnd


selectAll()

选择所有文本。


selectWord()

选择离当前光标最近的单词。


undo()

如果可撤销,则撤销最后一个操作。取消任何当前选择,并更新选择开始到当前光标位置。


© 2024 Qt公司有限公司。本文件内包含的文档贡献是各自所有者的版权。所提供的文档是根据免费软件基金会发布的GNU自由文档许可协议第1.3版条款许可的。Qt及其相关标志是芬兰的Qt公司及其它国家和地区的商标。所有其他商标属于其各自所有者。