我需要实现一个 QSpinBox
控件,它应该能够处理 int64
类型的值作为其最小和最大值。当前的实现仅支持 int32
类型的值。
到最后,我的 QSpinBox
应该接受介于9223372036854775807和-9223372036854775808之间的任何值。
如果我想通过子类化 QAbstractSpinbox
来实现这一点,我需要做些什么?
QAbstractSpinBox
。QLineEdit
添加QValidator
以仅允许有效的int64值。value
的属性以提供对实际保存值的int64成员的访问。stepBy(int steps)
以修改数字。QSpinBox
特定方法和属性(最小/最大限制,前缀,后缀等)。基本上,您需要维护两个状态:一个是实际的int64值,另一个是由QLineEdit
持有的文本。通常只需通过以下方式更新:
lineEdit()->setText(QString::number(myNumber));
但是如果用户想要前缀或后缀,它将需要稍微调整一下。