创建圆形 TextField 时,QML 文本不在 TextField 的中心

问题描述 投票:0回答:1

以下代码创建圆角TextField

TextField {
    id: usernameTextField
    placeholderText: qsTr("username")
    width: 250
    height: 40
    anchors {
        top: parent.top
        topMargin: giveDetailsLabel.anchors.topMargin + 36
        horizontalCenter: parent.horizontalCenter
        horizontalCenterOffset: 0
    }

    background: Rectangle {
        radius: 20
        border.color: "#C9C9C9"
        border.width: 1
    }
    verticalAlignment: TextField.AlignVCenter

    font.pixelSize: 16
    font.weight: Font.Normal
    font.family: "Open Sans"
    leftPadding: 10
}

以下代码的问题,文本不在中心,由于某种原因向上移动,我尝试了许多不同的方法,例如锚定背景矩形以适合父级,但它不起作用,使用

verticalAlignment: TextField.AlignVCenter
无法正常工作

另一个问题是我有完全相同的文本字段,但我使用

echoMode: TextField.Password
来制作密码,密码点太大了,我尝试减小字体,但文本在转换为点之前也会减小,那么如何减小仅点而不减小文本大小,以便用户在字符转换之前看到他们用大字体写的内容,这里是它在 Android 上的样子

enter image description here

并且文本再次向上移动,点代表字符,并且永远不会在文本内居中。

使用QT 6.2

qt qml textfield qt6
1个回答
0
投票

你只需要添加这个:

 bottomPadding: 0
 topPadding: 0

默认情况下这不是 0

© www.soinside.com 2019 - 2024. All rights reserved.