14.Quick QML-TextInput详解

1.TextInput属性
用来编辑一行文本,对应QLineEdit,除了正常输入外,我们还可以设置echoMode属性改为密码显示状态,也可以通过validator属性和inputMask属性来设置验证器或输入掩码,来限制文本输入内容.也可以设置selectByMouse为true,让鼠标支持编辑选中的文本区域....等等.它的属性是非常非常的多,要想熟练使用该组件,我们还是有必要过滤一遍.
TextInput的属性如下所示:

acceptableInput : bool,只读属性,用来获取当前输入的内容是否合法的输入,默认始终为true,如果我们设置了validator属性和inputMask属性,那么该值则为false,除非当前文本框内容满足输入的要求才会为true

inputMask : string,用来设置输入掩码,限制允许的文本输入,具体参考QLineEdit::inputMask,比如:

A:必须输入A-Z,a-z

a:可以输入A-Z,a-z,或者也可以忽略

N:必须输入A-Z,a-z,0-9

n:可以输入A-Z,a-z,0-9,或者也可以忽略

X:支持任何字符

x:可以输入任何字符,或者也可以忽略

9:只能输入数字0-9

0:可以输入数字0-9,或者也可以忽略

B:只能输入二进制数0或者1

比如:

inputMask: "0000.00.00": 此时acceptableInput始终为true,因为0表示可以输入0-9,也可以忽略不输入,

inputMask: "出生日期:9999-99-99": 那么acceptableInput为false,比如我们输入具体日期后,才会为true

activeFocusOnPress : bool,默认值为ture,表示当鼠标按下,TextInput时则获得活动焦点(显示光标).设置为false,则鼠标按下,也无法编辑TextInput,除非我们设置了focus属性为true,让它始终获取焦点.

autoScroll : bool,当文本长于宽度时,TextInput是否应滚动。默认为true,若设为false,如果超过宽度,并且clip为true的情况下,则无法滚动到我们输入的字符位置处

bottomPadding : real,底部内边距

canPaste : bool,只读属性,用来表示TextInput是否可以被粘贴,只有当TextInput是可写状态,并且剪贴板的内容符合格式要求,则返回true

canRedo : bool,只读属性,是否可以重做撤消操作,如果支持则返回true

canUndo : bool,只读属性,是否可以撤消操作,如果支持则返回true

color : color,文本颜色

contentHeight : real,只读属性,用来获取文本的高度,需要注意的是文本的高度取决于font.pixelSize大小,而不是组件的height

contentWidth : real,只读属性,用来获取文本的宽度(不是一个字符的宽度,而是当前输入的所有字符的宽度)

cursorDelegate : Component,光标委托,用来设置自定义的光标,并且委托组件的根项必须是QQuickItem或QQuickItem派生类

cursorPosition : int,光标在TextInput的位置(不是像素点位置,以I表示光标,比如012I3,cursorPosition=3,I0123,cursorPosition=0)

cursorRectangle : rectangle,只读属性,用来获取光标的像素坐标和大小

cursorVisible : bool,光标是否显示,我们也可以自己设置它,比如:

TextInput { text:"TextInput" onCursorVisibleChanged: { cursorVisible = true // 就算我们取消焦点后,光标也会一直显示 } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxsss.html