2013-08-19 68 views
0

我想在QCoreApplication中使用QValidator及其子类(QRegExpValidator,QIntValidator),但会出现以下错误:“QValidator:No such file or directory” 如果我在.pro文件中添加以下行: “QT + = gui” - 一切正常,但这不是我的解决方案。在QCoreApplication中使用QValidator

是否有任何技术在QCoreApplications中使用QValidator?

+0

为什么你需要在qt核心应用程序中使用验证器。 QValidator的设计与QLineEdit一起工作。 –

+0

我决定使用QValidator来验证程序参数。 Smth是这样的:if(validator.validate(QString(argv [1]),0)!= QValidator :: Acceptable ...例如,如果第一个参数是一个IP地址,我想检查它的正确性 –

+0

所以QValidator是(你不需要中间状态或游标信息)'QRegExp','QString :: toInt','QString :: toDouble'应该做这个工作(如果你需要本地验证,那么' QLocale'应该没问题) –

回答

1

不,这是不可能的。 QValidator是gui lib的一部分。我想Qt开发人员认为QValidator只对Qt的文本输入类有意义。我再次检查,上面的陈述仍然是正确的。但是,我查看了代码,QValidator不依赖于任何gui的东西。乍一看,它似乎是相当独立的。所以你可能能够从Qt源复制qvalidator.cpp和qvalidator.h到你的源代码,做一个合理的调整量,并将其整合到你的代码中。这可能是可能的,我不认为这很容易。

+0

我认为有一个简单的黑客来做到这一点。无论如何谢谢你! –

相关问题