【问题标题】:How to get rid of leading zero in QSpinBox如何摆脱 QSpinBox 中的前导零
【发布时间】:2012-12-14 00:15:35
【问题描述】:

我正在使用一个 QSpinBox,可用于输入从 0 到 33 的值。默认值为零。如果我使用键盘输入数字,它会保留前导零,这很烦人。

示例:我想通过键盘输入 23

我输入“2” - 旋转框的值变为“02”

我输入“3” - 没有任何反应 - 旋转框已满

如何防止这种行为?

谢谢, 一个

【问题讨论】:

  • 你能展示一些示例代码吗?
  • 您只是将光标放在 0 之后并输入吗?您是先选择旋转框中的所有文本吗?删除它? QSpinBox 的默认行为非常普遍,试图弄乱它通常不利于可用性。

标签: c++ qt qt4


【解决方案1】:

我在使用 QDoubleSpinBox 时遇到了类似的问题,其中尾随零使编辑不方便。

我通过重新实现 QDoubleSpinBox::textFromValue() 来修剪零点来解决它。

【讨论】:

  • 这应该是要走的路
【解决方案2】:

valueChanged 侦听器中添加一行代码以删除前导零。

if (mySpinBox.value.length() > 1 && mySpinBox.value[0] == '0')
{
     mySpinBox.value = mySpinBox.value.remove(0, 1);
}

【讨论】:

  • 您指的是哪种语言绑定? value 是一个 int,而不是 QString,所以这不起作用。
  • 有这个功能:void QSpinBox::valueChanged ( const QString & text )
猜你喜欢
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多