TextInput:单行文本输入框。
TextInput除了光标和文本外,默认没有边框等效果。
import QtQuick
import QtQuick.Window
import QtQuick.Controls
Window {
id: win
width: 800
height: 600
visible: true
title: qsTr("Hello World")
//单行文本输入框
//TextInput除了光标和文本外,默认没有边框等效果
TextInput {
anchors.centerIn: parent
text: "this is a textinout"
}
}
我们可以自己给它加一个边框:
import QtQuick
import QtQuick.Window
import QtQuick.Controls
Window {
id: win
width: 800
height: 600
visible: true
title: qsTr("Hello World")
Rectangle {
anchors.centerIn: parent
width: 200
height: 50
color: "transparent"
border.width: 1
border.color: "red"
//单行文本输入框
//TextInput除了光标和文本外,默认没有边框等效果
TextInput {
anchors.margins: 1
text: "this is a textinput control!"
}
}
}
leftPadding设置为10,效果如下:
topPadding设置为10,效果如下:
bottomPadding : real
leftPadding : real
padding : real
rightPadding : real
topPadding : real
注意: 如果为TextInput指定了显式的宽度或高度,则必须注意确保它足够大,以容纳相关的填充值。例如:如果topPadding和bottomPadding设置为10,但是TextInput的高度仅设置为20,则文本将没有足够的垂直空间来呈现,会被剪切显示。
effectiveHorizontalAlignment : enumeration
horizontalAlignment : enumeration
verticalAlignment : enumeration
设置文本在textput项目的宽度和高度内的水平对齐方式。默认情况下,文本对齐遵循文本的自然对齐,例如,从左到右读取的文本将向左对齐。
TextInput没有垂直对齐,因为自然高度正是单行文本的高度。如果您手动将高度设置为更大的值,则TextInput将始终顶部垂直对齐。您可以使用锚来对齐它,但你想在另一个项目。
horizontalAlignment的有效值是TextInput.AlignLeft、TextInput.AlignRight和TextInput.AlignHCenter。
垂直对齐的有效值是TextInput.AlignTop(默认),TextInput.AlignBottom、TextInput.AlignVCenter。
当使用附加属性LayoutMirroring::enabled来镜像应用程序布局时,文本的水平对齐也将被镜像。但是,属性horizontalAlignment将保持不变。要查询TextInput的有效水平对齐方式,请使用只读属性effectiveHorizontalAlignment。
activeFocusOnPress : bool
TextInput是否应该在鼠标按下时获得活动焦点。默认情况下,此设置为true。
autoScroll : bool
当文本长度大于宽度时,TextInput是否应该滚动。默认情况下,此设置为true。
canPaste : bool
如果TextInput是可写的,并且剪贴板的内容适合粘贴到TextInput中,则返回true。
canRedo : bool
如果TextInput是可写的,并且存在可重做的未完成操作,则返回true。
color : color
文本颜色。
contentHeight : real
返回文本的高度,包括如果文本不适合设置的高度,则超过覆盖高度的高度。
contentWidth : real
如果设置了wrapMode,则返回文本的宽度,包括超过由于换行不足而覆盖的宽度。
cursorDelegate : Component
TextInput中光标的委托。
如果你为TextInput设置了一个cursorDelegate,这个delegate将被用来绘制光标,而不是标准的光标。当需要游标时,将由TextInput创建和管理委托实例,并且将委托实例的x属性设置为在当前字符的左上角之前一个像素。请注意,委托组件的根项必须是QQuickItem或QQuickItem的派生项。
cursorPosition : int
TextInput中光标的位置。
cursorRectangle : rectangle
在文本输入中呈现标准文本游标的矩形。只读的。
自定义cursorDelegate的位置和高度会随着cursorRectangle的变化而自动更新。委托的宽度不受
光标矩形更改的影响。
cursorVisible : bool
当TextInput显示光标时设置为true。当TextInput获得活动焦点时设置和取消该属性,以便可以将其他属性绑定到光标当前是否显示。因为它可以自动设置和取消设置,所以当您自己设置该值时,必须记住您的值可能会被覆盖。
它可以直接在脚本中设置,例如,如果KeyProxy可能会向它转发密钥,并且您希望它在发生这种情况时看起来是活动的(但实际上没有给它活动焦点)。
它不应该像下面的QML一样直接在项目上设置,因为指定的值将在焦点更改时被覆盖并丢失。
displayText : string
这是在TextInput中显示的文本。
如果echoMode被设置为TextInput::Normal,它的值与TextInput::text属性的值相同。否则,此属性保存对用户可见的文本,而text属性保存实际输入的文本。
echoMode : enumeration
指定文本应该如何在TextInput中显示。
TextInput.Normal-按原样显示文本。(默认)
TextInput.Password-显示平台相关的密码掩码字符,而不是实际字符。
TextInput.NoEcho -不显示任何内容。
TextInput.PasswordEchoOnEdit -在编辑时显示输入的字符,否则与TextInput.Password相同
font.bold : bool
文本加粗。
font.capitalization : enumeration
设置文本的大写。
Font.MixedCase:这是不应用大小写变化的普通文本呈现选项。
Font.AllUppercase:这将文本更改为以全大写类型呈现。
Font.AllLowercase:将文本改为以全小写字体呈现。
Font.SmallCaps:这将文本更改为以小大写类型呈现。
Font.Capitalize:这将改变文本,使每个单词的第一个字符为大写字符
font.family : string
设置字体的家族名称。
font.hintingPreference : enumeration
在文本上设置首选提示。注意:此属性仅在与渲染类型TextInput.NativeRendering一起使用时有效。
Font.PreferDefaultHinting:使用目标平台的默认提示级别。
Font.PreferNoHinting:如果可能的话,渲染文本而不提示符号的轮廓。文本布局将在排版上准确,使用与使用相同的指标,例如打印时。
Font.PreferVerticalHinting:如果可能的话,渲染文本时不使用水平提示,但将字形与像素网格在垂直方向上对齐。在密度太低而无法准确呈现符号的显示器上,文本将显得更清晰。但由于字形的水平度量是没有暗示的,文本的布局将可扩展到更高密度的设备(如打印机),而不会影响诸如换行之类的细节。
Font.PreferFullHinting:如果可能的话,在水平和垂直方向上呈现带有提示的文本。文本将被修改以优化目标设备上的易读性,但由于指标将取决于文本的目标大小,字形、断行和其他排版细节的位置将无法缩放,这意味着文本布局可能在具有不同像素密度的设备上看起来不同。
font.italic : bool
设置字体是否为斜体样式。
font.kerning : bool
启用或禁用OpenType字距调整功能时,对文本进行字形调整。禁用此功能可能会在创建或更改文本时提高性能,但可能会牺牲一些外观特征。默认值为true。
font.letterSpacing : real
字距调整,它改变了字体中各个字母之间的默认间距。一个正数值会增加相应的像素,使字母间距增大;一个负数值会减少间距。
font.pixelSize : int
以像素为单位设置字体大小。字体依赖于特定的设备。为了以独立于设备的方式设置字体大小,应该使用“pointSize”。
font.pointSize : real
以点为单位设置字体大小。点的大小必须大于零。
font.strikeout : bool
字体是否带有删除线(即划线删除标记)
font.styleName : string
设置字体的样式名称。这个属性是大小写不敏感的。如果设置了font.styleName
,那么在匹配字体时,会根据这个样式名称来匹配,而不是根据font.weight
、font.bold
和font.italic
这些属性。
font.underline : bool
设置文本是否带有下划线。
font.weight : int
设置字体粗细(weight)。在Qt中,字体粗细是一个整数值,范围从1到1000,或者可以使用预定义的枚举值:
Font.Thin
Font.Light
Font.ExtraLight
Font.Normal
- 默认值Font.Medium
Font.DemiBold
Font.Bold
Font.ExtraBold
Font.Black
不是所有的字体都支持所有粗细级别。具体而言,一些字体可能只支持一部分范围的值,因此在设置字体粗细时,可能需要考虑字体的可用选项。
font.wordSpacing : real
设置字体的字间距。字间距是单词之间的默认间距。正值会增加相应的像素数量,负值会相应地减少单词之间的间距。
inputMask : string
设置输入掩码(input mask),以限制允许的文本输入。输入掩码的功能类似于输入验证,确保用户只能输入符合特定格式的文本。
字符(必须输入) | 字符(可留空) | 含义 |
A | a | 只能输入A-Z,a-z |
N | n | 只能输入A-Z,a-z,0-9 |
X | x | 可以输入任意字符 |
9 | 0 | 只能输入0-9 |
D | d | 只能输入1-9 |
# | 只能输入加号(+),减号(-),0-9 | |
H | h | 只能输入十六进制字符,A-F,a-f,0-9 |
B | b | 只能输入二进制字符,0或1 |
字符 | 含义 |
> | 后面的字母字符自动转换为大写 |
< | 后面的字母字符自动转换为小写 |
! | 停止字母字符的大小写转换 |
[ ] { } | 括号中的内容会直接显示出来 |
\ | 将该表中的特殊字符正常显示用作分隔符 |
length : int
返回TextInput项目中的总字符数。如果TextInput有一个输入掩码,长度将包括掩码字符,并且可能与text属性返回的字符串长度不同。与查询text属性的长度相比,这个属性可能更快,因为它不需要复制或转换TextInput内部字符串数据。这个属性通常用于性能优化,特别是在处理大量文本数据时。通过使用textLength
属性,可以避免不必要的字符串复制和转换操作,从而提高应用程序的效率。
maximumLength : int
TextInput中允许的最大文本长度。如果文本太长,它会在限制处被截断。默认情况下,此属性包含一个值为32767的值。这个属性可以用于限制用户在文本输入框中输入的最大字符数,防止过长的文本导致内存占用过高或其他问题。
mouseSelectionMode : enumeration
指定了如何使用鼠标选择文本。
TextInput.SelectCharacters
- 选择以单个字符为单位进行更新。(默认)TextInput.SelectWords
- 选择以整个单词为单位进行更新。
这个属性仅在selectByMouse
为true
时适用。通过设置selectionMode
属性,可以选择是按字符还是按单词进行选择,这取决于用户的鼠标操作方式。
overwriteMode : bool
用户输入的文本是否会覆盖现有的文本。如果此属性为true
,则现有文本被逐个字符覆盖;否则,文本在光标位置插入并替换现有文本。默认情况下,此属性为false
(新文本不会覆盖现有文本)。
passwordCharacter : string
定义了当echoMode设置为Password或PasswordEchoOnEdit时显示的字符。默认情况下,它是平台主题使用的密码字符。
passwordMaskDelay : int
设置在可见字符被密码字符屏蔽之前的延迟,单位是毫秒。
persistentSelection : bool
当TextInput失去焦点并转移到场景中的另一个项目时,是否应保持其选择。默认情况下,这个属性被设置为false
。
readOnly : bool
用户输入是否可以修改TextInput的内容。
renderType : enumeration
设置文本渲染类型。
有两种支持的渲染类型:
1、Text.QtRendering
:文本在目标平台上看起来更原生,并且不需要诸如文本转换等高级功能,那么可以选择Text.NativeRendering
。使用这种渲染类型与高级功能结合可能会导致结果质量较差,有时甚至出现像素化。
2、Text.NativeRendering:
这是默认的渲染类型,它是由QQuickWindow::textRenderType()
确定的。
selectByMouse : bool
在特定平台上用户是否可以通过鼠标选择文本。
selectedText : string
文本输入中当前选择的文本。
selectedTextColor : color
选择文本时的显示高亮文本颜色。
selectionColor : color
文本高亮颜色,在选择后使用。
selectionEnd : int
光标在当前选择的最后一个字符之后的位置。
selectionStart : int
光标在当前选择的第一个字符之前的位置。
text : string
输入框的文本。
validator : Validator
在TextInput上设置验证器。当设置验证器时,TextInput将只接受使text属性处于可接受状态或中间状态的输入。只有当按enter键时文本处于可接受状态时,才会发送可接受的信号。
目前支持的验证器有IntValidator、DoubleValidator和RegularExpressionValidator。
wrapMode : enumeration
设置TextInput对象的文本换行方式。这个属性决定了当文本超过TextInput的宽度时该如何处理。TextInput.NoWrap(默认值)
:不进行换行。如果文本中没有足够的换行符,那么implicitWidth
会超过设定的宽度。
TextInput.WordWrap
:只在单词边界进行换行。如果某个单词太长,implicitWidth
会超过设定的宽度。
TextInput.WrapAnywhere
:在任何位置进行换行,即使这个位置在单词的中间。
TextInput.Wrap
:如果可能,尽量在单词边界进行换行;如果不可能,则在适当的位置换行,即使这个位置在单词的中间。