TextInput QML类型

显示一行可编辑文本。 更多...

导入语句import QtQuick
继承

Item

属性

信号

方法

详细描述

TextInput类型显示一行可编辑的纯文本。

TextInput用于接受一行文本输入。可以在TextInput项上放置输入约束(例如,通过validatorinputMask),并设置echoMode适当的值,使TextInput可用于密码输入字段。

在macOS上,Home/End的Up/Down键绑定被显式禁用。如果您需要此类绑定(在任何平台),您需要在QML中构建它们。

另请参阅TextEditText

属性文档

水平对齐 : 枚举

垂直对齐 : 枚举

设置 TextInput 项内部文本的水平对齐方式,该方式遵循文本的宽度与高度。默认情况下,文本对齐方式遵循文本的自然对齐方式,例如从左到右读取的文本将左对齐。

TextInput 没有垂直对齐,因为自然高度正好是文本单行的高度。如果您手动将高度设置得更大,TextInput 将始终垂直居顶对齐。您可以使用锚点在另一个项内部进行对齐。

horizontalAlignment 的有效值有 TextInput.AlignLeftTextInput.AlignRightTextInput.AlignHCenter

verticalAlignment 的有效值有 TextInput.AlignTop(默认)、TextInput.AlignBottomTextInput.AlignVCenter

使用 LayoutMirroring::enabled 附加属性镜像应用布局时,文本的水平对齐也将被镜像。但是,属性 horizontalAlignment 将保持不变。要查询 TextInput 的实际水平对齐方式,请使用只读属性 effectiveHorizontalAlignment


下边距 : real

左边距 : real

内边距 : real

右边距 : real

上边距 : real

这些属性保存的是内容周围的边距。这个空间是在 contentWidthcontentHeight 之外预留的。

除非设置了标签,否则单个边距属性假定的是 padding 属性的值。例如,如果 padding 设置为 4,而 leftPadding 设置为 8,则使用 8 作为左边距。

注意:如果为 TextInput 提供了显式的宽度或高度,必须小心确保它足够大,可以容纳相关的边距值。例如:如果 topPaddingbottomPadding 设置为 10,而 TextInput 的高度仅设置为 20,文本将没有足够的垂直空间进行渲染,并可能看起来已被裁剪。


可接受输入 : bool [只读]

除非设置了验证器或输入掩码,否则此属性始终为真。如果设置了验证器或输入掩码,此属性只有在当前文本作为最终字符串(而不是中间字符串)被验证器或输入掩码接受时才为真。


触摸聚焦 : bool

是否在鼠标按下时使 TextInput 获得活动焦点。默认设置为 true。


自动滚动 : bool

当文本长度超过宽度时,TextInput 是否应该滚动。默认情况下,此设置设置为 true。

另请参阅 ensureVisible()。


canPaste : bool [只读]

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


canRedo : bool [只读]

如果 TextInput 可写,并且有 未完成 操作可以重做,则返回 true。


canUndo : bool [只读]

如果 TextInput 可写,并且有前一个操作可以撤销,则返回 true。


color : color

文本颜色。


contentHeight : real [只读]

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


contentWidth : real [只读]

返回文本的宽度,包括由于不足绕转而覆盖的宽度,当 wrapMode 设置时。


cursorDelegate : Component

TextInput 中光标的代理。

如果您为 TextInput 设置 cursorDelegate,则此代理将被用于绘制光标而不是标准光标。当需要光标时,TextInput 将创建并管理代理的实例,并且将设置代理实例的 x 属性,使其在当前字符的左上角前一个像素。

请注意,代理组件的根项必须是 QQuickItem 或其派生项。


cursorPosition : int

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

注意: 此处的 字符 指的是 QChar 对象的字符串,因此是 16 位 Unicode 字符,位置被认为是该字符串的索引。这不一定对应于书写系统的单个语素,因为单个语素可能由多个 Unicode 字符表示,例如代理对、语素连写或变音符号。

displayText 如果 echoMode 设置为 TextInput.Password 时不同:那么每个 passwordCharacter 都是一个“窄”字符(cursorPosition 始终移动 1),即使 TextInput 中的文本不是也是如此。


cursorRectangle : rectangle [只读]

标准文本光标在文本输入中渲染的矩形。只读。

自定义cursorDelegate的位置和高度在cursorRectangle变化时会自动更新以跟随光标。委托的宽度不受光标矩形变化的影响。


cursorVisible : bool

TextInput显示光标时设置为true。

TextInput获得活动焦点时,该属性将设置和取消设置,以便其他属性可以绑定到光标是否当前显示。由于它是自动设置和取消设置的,因此自己设置值时必须注意,您的值可能会被覆盖。

可以直接在脚本中设置,例如,如果KeyProxy可能会将键转发给它,并且您希望它在发生这种情况时看起来是活动的(但实际上不给予它活动焦点)。

不应像以下QML那样直接在项上设置,因为指定的值将在焦点改变时被覆盖和丢失。

TextInput {
    text: "Text"
    cursorVisible: false
}

在上述片段中,当TextInput获得活动焦点时,光标仍然将变为可见。


displayText : string [只读]

这是在TextInput中显示的文本。

如果echoMode设置为TextInput::Normal,则此值与TextInput::text属性具有相同的值。否则,此属性包含用户可见的文本,而text属性包含实际输入的文本。

注意:TextInput::text属性不同,此属性包含输入方法的部分文本输入。

另请参阅:preeditText


echoMode : enumeration

指定文本应在TextInput中如何显示。

常量描述
TextInput.Normal按原样显示文本。(默认值)
TextInput.Password显示平台相关的密码掩码字符而不是实际字符。
TextInput.NoEcho不显示任何内容。
TextInput.PasswordEchoOnEdit在编辑时显示字符,否则与TextInput.Password相同。

effectiveHorizontalAlignment : enumeration [只读]

当使用LayoutMirroring::enabled附件属性来镜像应用程序布局时,文本的水平对齐也会镜像。然而,属性horizontalAlignment保持不变。要查询TextInput的有效水平对齐,请使用只读属性effectiveHorizontalAlignment


font.bold : bool

设置字体是否为粗体。


font.capitalization : enumeration

设置文本的字母大小写。

常量描述
Font.MixedCase默认情况:不应用字母大小写更改
Font.AllUppercase将文本更改为显示为大写字母
Font.AllLowercase将文本更改为显示为小写字母
Font.SmallCaps将文本更改为显示为小写字母
Font.Capitalize将文本更改为每个单词的首字母大写
TextInput { text: "Hello"; font.capitalization: Font.AllLowercase }

font.family : string

设置字体家族名称。

家族名称不区分大小写,可以包含一个字形名称,例如 "Helvetica [Cronyx]"。如果家族可以从多个字形库中获取且未指定字形,则会随机选择一个字形库。如果字体家族不可用,则会使用字体匹配算法设置一个字体家族。


font.features : object [since 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特性将根据QFont的字体.kerning属性启用或禁用。此外,如果设置了QFont的字体.letterSpacing,则所有连字特性(ligacligdlighlig)都将禁用,但这仅适用于连字是装饰性的书写系统。对于需要连字的书写系统,这些功能将保持默认状态。使用font.features设置将覆盖默认行为。例如,如果将"kern"设置为1,则始终启用间距,无论QFont的字体.kerning属性是否设置为false。同样,如果设置为0,则始终禁用。

此属性自Qt 6.6版本引入。

另请参阅:QFont::setFeature()。


font.hintingPreference : enumeration

为文本设置首选的光标提示。这是向底层文本渲染系统使用特定级别光标提示的建议,并在各个平台上支持程度不同。有关更多详细情况,请参阅QFont::HintingPreference文档中的表格。

注意:此属性仅在与其他渲染类型TextInput的NativeRendering一起使用时才有作用。

常量描述
Font.PreferDefaultHinting使用目标平台的默认光标提示级别。
Font.PreferNoHinting如果可能,在不提示字符轮廓的情况下渲染文本。文本布局将是排版准确的,使用与打印时相同的度量。
Font.PreferVerticalHinting如果可能的话,尽量以无横向提示的方式渲染文本,但沿垂直方向将符号对齐到像素网格。如果显示器的密度过高而无法准确渲染符号,文本将更清晰。但由于符号的水平度量没有提示,文本布局可以缩放到更高密度的设备(如打印机)而不会影响如行中断之类的细节。
Font.PreferFullHinting如果可能的话,尽量在横向和纵向都进行提示渲染。文本将根据目标设备进行调整,以提高可读性,但由于度量取决于文本的目标大小,符号的位置、行中断和其他排版细节将不会缩放,这意味着在不同像素密度的设备上,文本布局可能会有所不同。
TextInput { text: "Hello"; renderType: TextInput.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

font.italic : bool

设置字体是否有斜体风格。


font.kerning : bool

在排版文本时启用或禁用OpenType的字距特征。禁用此功能可能会在创建或更改文本时提高性能,但可能会牺牲一些外观特性。默认值是true。

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

font.letterSpacing : real

设置字体的字母间距。

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


font.pixelSize : int

设置字体大小为像素。

使用此函数会使得字体依赖于设备。使用 pointSize 以设备独立的方式设置字体的大小。


font.pointSize : real

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


font.preferShaping : bool

有时,为了正确显示一组字符,字体将应用复杂的规则。在一些书写系统中,例如婆罗米字,这是为了让文字可读所必需的,但在例如拉丁字母中,这仅仅是一个外观特性。将preferShaping属性设置为false将禁用所有这些特性(当它们不是必需的时候),这将在大多数情况下提高性能。

默认值是true。

TextInput { 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()来选择它们,就像传统的子族一样。

在某些情况下,提供不同轴的任意值也是有用的。例如,如果一种字体有常规和粗体子族,您可能希望有一个在这两者之间的重量。您可以通过为字体的“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
TextInput { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

设置字体的字间距。

字间距改变默认的字间距。正值会增加字距,而负值则相应地减少字间距。


inputMask : string

允许您为TextInput设置输入掩码,限制允许的文本输入。有关详细信息,请参阅QLineEdit::inputMask,因为与TextInput使用相同的掩码字符串。

另请参阅:acceptableInputvalidator


inputMethodComposing : bool [只读]

此属性表示TextInput是否具有从输入法输入的文本输入的部份。

在输入法编辑或提交文本时,输入法可能会依赖于TextInput的鼠标或键盘事件。此属性可用于确定何时禁用可能干扰输入法正确操作的控件事件处理器。


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 [只读]

返回 TextInput 项中的总字符数。

如果 TextInput 有 inputMask,长度将包括掩码字符,并且可能与 text 属性返回的字符串长度不同。

与查询 text 属性的长度相比,此属性可能更快,因为它不需要复制或转换 TextInput 的内部字符串数据。


maximumLength : int

TextInput 中文本的最大允许长度。

如果文本太长,它将在限制处被截断。

默认情况下,此属性包含的值为 32767。


mouseSelectionMode : 枚举

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

常量描述
TextInput.SelectCharacters(默认) 选择会更新为单个字符。
TextInput.SelectWords选择会更新为整个单词。

此属性仅当 selectByMouse 为 true 时适用。


overwriteMode : bool

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

与许多文本编辑器一样,文本编辑器小部件可以配置为插入或覆盖现有文本。

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

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


passwordCharacter : 字符串

当 echoMode 设置为密码或 PasswordEchoOnEdit 时,将显示此字符。默认情况下,它是平台主题使用的密码字符。

如果此属性设置为超过一个字符的字符串,则使用第一个字符。如果字符串为空,则忽略此值且不设置该属性。


passwordMaskDelay : int

设置在可见字符用密码字符屏蔽之前的时间延迟,以毫秒为单位。

通过分配未定义来调用重置方法。


persistentSelection : bool

TextInput项失去焦点转而聚焦于场景中其他项时,是否应该保持其选择状态。默认设置为false;


preeditText : string [只读]

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

要关闭由于预测产生的部分文本,请在上inputMethodHints中设置Qt.ImhNoPredictiveText标志。

另请参阅displayTextinputMethodHints


readOnly : bool

设置用户输入是否可以修改TextInput的内容。

如果readOnly设置为true,则用户输入将不会影响文本属性。任何绑定或设置文本属性的尝试仍将生效。


renderType : enumeration

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

支持的渲染类型包括

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

选择TextInput.NativeRendering,如果用户希望文本在目标平台看起来更本土化,并且不需要比如文本变换的高级功能。同时使用这种功能与NativeRendering渲染类型可能导致结果粗糙甚至像素化。

TextInput.QtRenderingTextInput.CurveRendering都是硬件加速技术。《QtRendering》是两者中较快的,但使用更多内存,在大型文本中可能表现出渲染伪影。《CurveRendering》应在QtRendering无法提供良好的视觉结果或降低图形内存消耗是优先事项的情况下考虑。

默认渲染类型由QQuickWindow::textRenderType确定。


selectByMouse : bool

默认为true

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

注意:在6.4版本之前,默认值是false;但如果您启用了此属性,您也可以通过拖动手指在触摸屏上来选择文本。这会干扰在TextInput内部的Flickable使用时的滚动效果。为了与TextField保持一致性,现在selectByMouse确实意味着所说的话:如果true,则只能通过鼠标拖动来选择文本。如果这种更改不适合您的应用程序,您可以将selectByMouse设置为false,或导入较旧的API版本(例如import QtQuick 6.3)以回归到之前的行为。通过更改导入版本来更改行为的选项将在Qt的后续版本中删除。


selectedText : string [只读]

这个只读属性提供了当前在文本输入中选中的文本。

它与以下代码片段等价,但它更快,更容易使用。

myTextInput.text.toString().substring(myTextInput.selectionStart,
    myTextInput.selectionEnd);

selectedTextColor : color

用于选择的突出显示文本颜色。


selectionColor : color

选择背后的文本突出显示颜色。


selectionEnd : int [只读]

当前选择的最后一个字符之后的光标位置。

此属性为只读。要更改选择,请使用select(start,end),selectAll(),或selectWord()。

另请参阅selectionStartcursorPositionselectedText


selectionStart : int [只读]

当前选择的第一个字符之前的光标位置。

此属性为只读。要更改选择,请使用select(start,end),selectAll(),或selectWord()。

另请参阅selectionEndcursorPositionselectedText


text : string

TextInput中的文本。

请注意,一些键盘使用预测功能。在这种情况下,由输入法组成的文本不属于此属性。与预测相关的文本部分将被下划线标注并存储在preeditText属性中。要获取TextInput中显示的全部文本,请使用displayText属性。

另请参阅clear()、displayTextpreeditText


validator : Validator

允许您为TextInput设置校验器。当设置校验器时,TextInput将仅接受将文本属性保留在可接受或中间状态的输入。只有当按回车键时文本处于可接受状态,才会发送接受的信号。

当前支持的校验器有IntValidatorDoubleValidatorRegularExpressionValidator。以下是如何使用校验器的示例,它允许将介于11至31之间的整数输入到文本输入中

import QtQuick 2.0
TextInput{
    validator: IntValidator{bottom: 11; top: 31;}
    focus: true
}

另请参阅acceptableInputinputMask


wrapMode : enumeration

将此属性设置为将文本包裹到TextInput项的宽度。只有当显式设置了宽度时,文本才会进行包裹。

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

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


信号文档

accepted()

当按下Return或Enter键时,会发出此信号。请注意,如果文本输入上设置了validatorinputMask,则只有在输入处于可接受状态时,才会发出信号。

注意: 相应的事件处理器为onAccepted


editingFinished()

当按下回车或 Enter 键或文本输入失去焦点时发出此信号。请注意,如果文本输入上设置了验证器或 inputMask,并且按下Enter/Return键,则只有在输入符合inputMask并且验证器返回可接受状态时,此信号才会被发出。

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


textEdited()

当文本被编辑时发出此信号。与 textChanged() 不同,当文本通过更改 text 属性的值或调用 clear() 程序化地更改时,此信号不会被发出。

注意: 相应的处理程序是 onTextEdited


方法文档

clear()

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

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

另请参阅:QInputMethod::reset


copy()

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

注意: 如果回声模式设置为非正常模式,则复制将不起作用。这是为了避免使用复制作为绕过行控件密码功能的替代方法。


cut()

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

注意: 如果回声模式设置为非正常模式,则剪切将不起作用。这是为了避免使用剪切作为绕过行控件密码功能的替代方法。


deselect()

删除活动文本选择。


ensureVisible(int position)

根据文本输入滚动内容,以便指定的字符 position 可在文本输入的边界内可见。

另请参阅:autoScroll


string getText(int start, int end)

返回位于 startend 位置之间的文本部分。

如果 TextInput 有一个 inputMask,则长度将包括掩码字符。


insert(int position, string text)

text 插入到 TextInputposition


isRightToLeft(int start, int end)

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


moveCursorSelection(int position, SelectionMode mode)

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

当调用此方法时,它还会将 selectionStartselectionEnd(无论在先前的光标位置上哪个)设置到指定的位置。这允许您轻松地扩展和收缩所选的文本范围。

选择模式指定选择是基于每个字符还是基于每个单词来更新。如果没有指定,则选择模式将默认为 TextInput.SelectCharacters

常量描述
TextInput.SelectCharacters设置selectionStartselectionEnd(无论哪个是之前的光标位置),将它们设置为指定的位置。
TextInput.SelectWordsselectionStartselectionEnd 设置为包括从指定位置到前一个光标位置之间的所有单词。包括范围内的部分单词。

例如,考虑以下调用序列

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

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

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


paste()

用系统剪贴板的快捷信息替换当前选中的文本。


int positionAt(real x, real y, CursorPosition position)

此函数返回文本输入的左上角从 xy 像素处的字符位置。位置 0 在第一个字符之前,位置 1 在第一个字符之后但在第二个字符之前,以此类推,直到位置 text.length,这是在所有字符之后。

这意味着对于所有在第一个字符之前的 x 值,此函数返回 0,对于所有在最后一个字符之后的 x 值,此函数返回 text.length。如果 y 值在文本上方,则位置将是第一行最近的字符,如果它在文本下方,则返回最后一行最近的字符的位置。

光标 position 参数指定应如何解析光标位置

常量描述
TextInput.CursorBetweenCharacters返回位于 x 之间的字符位置,这是默认值。
TextInput.CursorOnCharacter返回最靠近 x 的字符之前的字符位置。

rect positionToRectangle(int pos)

此函数接受一个字符位置 pos 并返回如果光标放置在该字符位置将占据的矩形。

这与设置 cursorPosition 并查询光标矩形相似,但 cursorPosition 不更改。


redo()

如果可以重做,则重做最后操作。


remove(int start, int end)

TextInput中删除从 startend 位置之间的文本部分。


select(int start, int end)

导致从 startend 的文本被选中。

如果 start 或 end 中的任一个超出范围,则不会更改选择。

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

另请参阅selectionStartselectionEnd


selectAll()

选择所有文本。


selectWord()

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


undo()

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


© 2024 Qt公司。此处包含的文档贡献者是各自版权所有者。此处提供的文档根据自由软件基金会发布的自由文档许可证版本1.3的条款提供。Qt及其相关标志是芬兰和/或全世界Qt公司的商标。所有其他商标属于其各自的所有者。