C++ 如何使用QDoubleValidator设置验证器?(QValidator)

C++ 如何使用QDoubleValidator设置验证器?(QValidator),c++,c,qt,C++,C,Qt,我现在有一个名为EditBox的类,它继承自Qwidget和QTextEdit 我正在尝试为这个文本编辑框设置一个验证器 EditBox manbox; 如何将验证器设置为0~100?小数点后2 我试过了 QDoubleValidator *testQD = new QDoubleValidator(manbox); testQD->setRange(0.00,100.00,2); QLineEdit *sb1 = new QLineEdit( manbox ); sb1->se

我现在有一个名为EditBox的类,它继承自Qwidget和QTextEdit

我正在尝试为这个文本编辑框设置一个验证器

EditBox manbox;
如何将验证器设置为0~100?小数点后2

我试过了

QDoubleValidator *testQD = new QDoubleValidator(manbox);
testQD->setRange(0.00,100.00,2);

QLineEdit *sb1 = new QLineEdit( manbox );
sb1->setValidator(testQD);
但似乎不起作用。哪里出了问题

或者请引导我到某个地方,我可以找到这一个完整的教程。
谢谢

您不能为
QTextEdit
设置验证器,它只适用于
QLineEdit
(以及包含
QLineEdit
的输入小部件,如
QSpinBox
QComboBox


如果您只需要一行,并且将内容限制为一个数字,那么您也可以用
QLineEdit
QDoubleSpinBox
来替换类
QTextEdit
中的
QTextEdit
,因为您不能为
QTextEdit
设置验证器,它只适用于
QLineEdit
(以及包含
QLineEdit
的输入小部件,如
QSpinBox
QComboBox
…)


如果您只需要一行,并且将内容限制为一个数字,那么您也可以用
QLineEdit
QDoubleSpinBox
来替换类
QTextEdit
中的
QTextEdit
,您首先会说您的类继承了QTextEdit,但随后您会在QLineEdit上设置一个验证器。这是什么呢?还有,您可以这样说吗请更具体地说明“似乎不起作用”?什么意思是
EditBox
在QWidget和QTextEdit之后继承?它使用多重继承吗?您不能在QTextEdit对象上设置验证器。在您的示例中,验证器是为
sb1
QLineEdit设置的。您只为其父类设置
manbox
。您可以说您的类继承了QTextEdit,但随后就设置好了在QLineEdit上设置验证程序。是哪一个?另外,您能更具体地说明“似乎不起作用”吗?在QWidget和QTextEdit之后,
EditBox
继承意味着什么?它使用多重继承吗?您不能在QTextEdit对象上设置验证器。在您的示例中,验证器是为
sb1
QLineEdit设置的。您只为其父对象设置了
manbox