Qt/QML:如何根据验证器找到 TextInput 最大宽度
Posted
技术标签:
【中文标题】Qt/QML:如何根据验证器找到 TextInput 最大宽度【英文标题】:Qt/QML: how to find TextInput maximum width based on validator 【发布时间】:2018-07-15 04:38:39 【问题描述】:在 QML 中做我的第一步,所以这可能很明显...... 当使用带有简单验证器(比如 IntValidator)的 TextInput 时,有没有办法知道 TextInput 字段将采用的最大宽度? 例如,如果我为从 0 到 999 的数字创建一个 IntValidator,我想找到显示该 999 所需的宽度(或根据字体等最宽的宽度)。 我正在尝试将该文本输入包装到一个具有固定大小的项目中,对于最坏的情况输入而言,大小正好合适,仅此而已,仅此而已? 谢谢。
【问题讨论】:
请提供mcve 【参考方案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
【讨论】:
以上是关于Qt/QML:如何根据验证器找到 TextInput 最大宽度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Qt QML 中处理 mac 集成 About MenuBar 项?