使用 inputMask 时不显示 TextFields 中的 placeholderText

placeholderText in TextFields is not shown when inputMask is used

也许我误解了什么,但是当我在 TextFieldplaceholderText 中设置输入掩码时,这个占位符没有显示。

发生这种情况时,我们会看到 TextField 空无一物。在下一个示例中,textField1 仅显示一个点 (.),它是 inputMask.

的一部分

我正在使用 Qt 5.5.0。可以使用以下示例检查此行为。

import QtQuick 2.5
import QtQuick.Controls 1.4

ApplicationWindow {
    visible: true
    width: 800
    height: 600

    TextField {
        id: textField1
        placeholderText: "0.0"
        inputMask: "999.99"
    }

    TextField {
        id: textField2
        anchors.top: textField1.bottom
        placeholderText: "0.0"
    }
}

确实它不适用于 inputMask。如果您定义 inputMask,该字段在创建时不为空,因此 placeholderText 不会激活。我不确定它是否可以被视为一个错误(对我来说是),但如果不是,我认为它应该被记录下来。

最糟糕的是,即使 inputMask 中只有数字,该字段仍然初始化为空白。

注意,在您的情况下,您可以改用验证器或 inputMethodHints 标志。

TextField {
    id: textField1
    placeholderText: "0.0"
    validator: DoubleValidator { top: 999; decimals: 2; }
}