在没有QApplication的情况下使用Qts QXmlSchemaValidator

时间:2017-11-21 13:29:19

标签: c++ qt

我需要在Qt中提供一些帮助,因为我并没有真正理解Qt库在Visual Studio项目中的使用方式。我尝试使用QtXmlPatterns中的QXmlSchemaValidator类来根据模式验证xml文件,但由于我无法访问main.cpp文件,因此无法实例化QApplication对象。我不想创建一个Qt项目,只是尝试在一个类'方法中使用这个schemaValidator类。 这就是我尝试加载模式的方法:

QUrl url("http://.../schema.xsd");

QXmlSchema schema;
    if (schema.load(url))
        qDebug() << "schema is valid";
    else
    qDebug() << "schema is invalid";

我收到此警告:“请首先实例化QApplication对象”

我在这里找到了一个解决方案:QEventLoop: Cannot be used without QApplication说我需要main函数看起来像这样:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

有没有办法加载架构并在没有QApplication对象的情况下验证我的xml文件?

提前致谢!

1 个答案:

答案 0 :(得分:1)

是的,请改用QCoreApplication

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //your code here

    return a.exec();
}

说真的,如果你喜欢的某些Qt功能需要一个事件循环,那么如果没有它,你就无法逃脱它。关于没有“Qt项目”(也许你的意思是你没有使用qmake)但是使用Qt类:祝你好运。