【Qt QML入门】TextInput

2023-12-14 21:51:26

? ? 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

以点为单位设置字体大小。点的大小必须大于零。

文章来源:https://blog.csdn.net/wangyi463295828/article/details/134997279
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。