Qt 如何正确地将QValidator*转换为QDoubleValidator*
在这段代码中,edit_scltratio是一个QLineEdit。如何在不使用旧式转换的情况下将其验证程序用作QDoubleValidator:Qt 如何正确地将QValidator*转换为QDoubleValidator*,qt,casting,Qt,Casting,在这段代码中,edit_scltratio是一个QLineEdit。如何在不使用旧式转换的情况下将其验证程序用作QDoubleValidator: (QDoubleValidator*)_ui->edit_sclratio->validator() //This works fine 但我想使用适当的强制转换,静态、动态、常量和重新解释强制转换都不起作用。错误总是“丢弃了限定符” QDoubleValidator* validator = static_cast<QDoubl
(QDoubleValidator*)_ui->edit_sclratio->validator() //This works fine
但我想使用适当的强制转换,静态、动态、常量和重新解释强制转换都不起作用。错误总是“丢弃了限定符”
QDoubleValidator* validator = static_cast<QDoubleValidator*>(_ui->edit_sclratio->validator());
QDoubleValidator*validator=static\u cast(\u ui->edit\u scltratio->validator());
错误总是“丢弃了限定符”
QDoubleValidator* validator = static_cast<QDoubleValidator*>(_ui->edit_sclratio->validator());
这里讲的是常量限定符
QDoubleValidator* validator = static_cast<QDoubleValidator*>(_ui->edit_sclratio->validator());
QLineEdit::validator()
返回一个const QValidator*
,因此必须将其强制转换为const QDoubleValidator*
注意:我建议您养成对继承QObject
(如QValidator
)的类使用的习惯。如果您试图强制转换到错误的类型,它还可以返回nullptr
;这允许您执行运行时错误检查