使用QTS QXMLSCHEMAVALIDATOR而无需qapplication

Use Qts QXmlSchemaValidator without QApplication

本文关键字:qapplication QTS QXMLSCHEMAVALIDATOR 使用      更新时间:2023-10-16

我在QT中需要一些帮助,因为我并没有真正毫无疑问地在Visual Studio Projects中使用QT库的方式。我尝试使用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:没有Qapplication无法使用,即我需要主函数看起来像这样:

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

是否有一种方法可以加载模式并验证我的XML文件,而无需qapplication对象?

预先感谢!

是的,使用QCoreApplication代替。

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //your code here
    return a.exec();
}

认真的,如果您喜欢的某些QT功能需要事件循环,那么您就无法摆脱它。关于没有" QT项目"(也许您是说您不使用qmake),但还使用QT类:祝您好运。