【问题标题】:Qt/QML: how to find TextInput maximum width based on validatorQt/QML:如何根据验证器找到 TextInput 最大宽度
【发布时间】:2018-07-15 04:38:39
【问题描述】:

在 QML 中做我的第一步,所以这可能很明显...... 当使用带有简单验证器(比如 IntValidator)的 TextInput 时,有没有办法知道 TextInput 字段将采用的最大宽度? 例如,如果我为从 0 到 999 的数字创建一个 IntValidator,我想找到显示该 999 所需的宽度(或根据字体等最宽的宽度)。 我正在尝试将该文本输入包装到一个具有固定大小的项目中,对于最坏的情况输入而言,大小正好合适,仅此而已,仅此而已? 谢谢。

【问题讨论】:

标签: qt qml textinput


【解决方案1】:

使用TextMetrics:

import QtQuick 2.9
import QtQuick.Controls 2.2

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    TextMetrics {
        id: textMetrics
        font: textField.font
        text: "999"
    }

    TextField {
        id: textField
        width: textMetrics.width + leftPadding + rightPadding
        validator: IntValidator {
            bottom: 0
            top: 999
        }
    }
}

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多