使用QSpinBox可以让用户输入数字时显示千位分隔符,例如10,000。最好的方法是什么?
QSpinBox
并重新实现 textFromValue
方法来自定义 SpinBox 组件的显示值。以下是一个可能的实现示例:QString MySpinBox::textFromValue(int value)
{
return this->locale()->toString(value);
}
使用区域设置是最好的方式,因为它会根据用户的设置显示分隔符。
valueChanged
信号连接到一个自定义槽,以更新文本。请注意,在此槽中,您应该暂时阻止信号(使用 blockSignals(true)
)以避免无限循环。 - pnezis
lineEdit()
对象上的事件。在这里可以获取文本光标位置。然后只需要比较转换前后的文本长度,并使用setCursorPosition()
重新定位光标。 - user3342816