Qt 如何对QSpinBox进行子类化,使其具有int64值作为最大值和最小值
我需要实现一个Qt 如何对QSpinBox进行子类化,使其具有int64值作为最大值和最小值,qt,qspinbox,Qt,Qspinbox,我需要实现一个QSpinBox控件,它应该能够将int64值作为最小值和最大值进行处理。当前实现仅支持int32值 一天结束时,myQSpinBox应接受介于 9223372036854775807和-9223372036854775808 如果要通过子类化QAbstractSpinbox实现这一点,我需要做什么 从QAbstractSpinBox派生 将QValidator添加到QLineEdit以仅允许有效的int64值 添加名为value的属性,以提供对实际持有该值的int64成员的访问
QSpinBox
控件,它应该能够将int64
值作为最小值和最大值进行处理。当前实现仅支持int32
值
一天结束时,myQSpinBox
应接受介于
9223372036854775807和-9223372036854775808
如果要通过子类化QAbstractSpinbox
实现这一点,我需要做什么
QAbstractSpinBox
派生QValidator
添加到QLineEdit
以仅允许有效的int64值value
的属性,以提供对实际持有该值的int64成员的访问steppy(int steps)
以修改编号QSpinBox
特定的方法和属性(最小/最大限制、前缀、后缀等)QLineEdit
保存的文本。通常通过以下方式更新:
lineEdit()->setText(QString::number(myNumber));
但是,如果用户想要前缀或后缀,则必须稍微调整它。谢谢您的回答,但是我如何才能创建验证程序来验证Int64范围,QIntValidator只提供int32?我想我必须对QValidator进行子类化,并创建自己的Int64Validator。这就是它的样子。为什么不使用没有小数的QDoubleSpinbox呢?您不需要从QabStretchSpinBox派生。@e.d.因为双精度只有52个尾数位。请看这里: