【发布时间】:2012-09-27 07:22:07
【问题描述】:
我有QSpinBox,它应该只接受奇数,所以我将初始值设置为 3 并设置为 2。
QSpinBox* spinBox = new QSpinBox;
spinBox->setValue(3);
spinBox->setSingleStep(2);
当我使用旋转框箭头修改值时,一切正常。但是当我从键盘输入值时,它不能取奇数。
那么是否可以在不继承QSpinBox 并重新定义其validate 方法的情况下设置满足我要求的验证?
如果值是奇数,我当前的解决方案是检查槽:
void MyWidget::slotSetSpinBoxValue(int value)
{
if(value%2 != 0)
{
//call function which takes only odd values
}
else
{
//here I want to show some kind off message that value can only be odd
//call function with --value parameter
}
}
第二个问题是如何为QSpinBox 显示一些提示?我想显示类似工具提示的提示,其中显示QSpinBox 值应该是奇数的消息。我在QWidget 中找到了statusTip 属性,但找不到如何使用它的示例。
【问题讨论】:
标签: c++ qt validation qspinbox