Qt QML:自动调整文本输入的大小

Qt QML:自动调整文本输入的大小,qt,fonts,qml,font-size,Qt,Fonts,Qml,Font Size,Texttype有一个很好的功能fontSizeMode,它试图使字体大小适合可视组件的实际大小。因此,当我将字体大小设置为20,并调整窗口大小使此字体大小过大时,它会自动降低字体大小 Text { text: qsTr("Text") font.pointSize: 20 fontSizeMode: Text.Fit } 现在我想在TextInput类型中使用此功能,但是没有fontSizeMode可用。所以我的问题是,如

Text
type有一个很好的功能
fontSizeMode
,它试图使字体大小适合可视组件的实际大小。因此,当我将字体大小设置为20,并调整窗口大小使此字体大小过大时,它会自动降低字体大小

Text {
          text: qsTr("Text")
          font.pointSize: 20
          fontSizeMode: Text.Fit
     }
现在我想在
TextInput
类型中使用此功能,但是没有
fontSizeMode
可用。所以我的问题是,如何使用
TextInput
实现相同的功能?现在,当设置字体大小并缩小窗口时,
TextInput
中的字符串被切成两半,如下所示:


您可以缩小图元的比例,将其约束到特定的宽度:

  Rectangle {
    width: 100
    height: 50
    color: "red"
    TextInput {
      anchors.centerIn: parent
      font.pointSize: 20
      text: "test"
      scale: Math.min(1, parent.width / contentWidth)
      Rectangle {
        color: "white"
        anchors.fill: parent
        z: -1
      }
    }
  }

我坚持这个解决方案。将
font.pixelSize
属性绑定到父级高度。虽然我不确定它是否100%正确,但它完全符合我的要求。如果有什么问题,请告诉我

 Text {
      text: qsTr("Text")
      font.pixelSize: 0.1 * parent.height
 }

谢谢你的回答。问题不在于宽度,还有
clip
。我的问题是身高。我在显示位置的问题中添加了一个图像。只需根据可用的高度进行缩放即可。如果您的意思是将宽度改写为高度,则没有帮助,行为仍然相同。这可能是因为在dtech提供的示例中,
矩形
具有固定的宽度,而不受窗口大小的限制。如果将
高度
更改为20,您将看到电子秤工作正常。您应该将比例或容器大小绑定到实际窗口大小。@T.Poe-该概念是通用的,如果数量超过限制,请按数量/限制比率将其缩小。只要把它插入你的代码。这里只有程序员,没有通灵者能神奇地知道你的代码和你期望的解决方案的确切格式。