matthew3r
matthew3r

Reputation: 692

Use Qts QXmlSchemaValidator without QApplication

I need some help in Qt since I don't really undestand the way Qt libraries can be used in visual studio projects. I try to use the QXmlSchemaValidator class from QtXmlPatterns to validate an xml file against schema, but I can't instantiate a QApplication object since I don't have access to the main.cpp file. I don't want to create a Qt project, just try to use this schemaValidator class in one of a class' method. This is how I try to load the schema:

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

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

I get this warning: "Please instantiate the QApplication object first".

I found a solution here: QEventLoop: Cannot be used without QApplication that says I need the main function to look like this:

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

    return a.exec();
}

Is there a way to load the schema and validate my xml files without a QApplication object?

Thanks in advance!

Upvotes: 1

Views: 187

Answers (1)

p-a-o-l-o
p-a-o-l-o

Reputation: 10047

Yes, use QCoreApplication instead.

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

    //your code here

    return a.exec();
}

Seriously, if some Qt features you like require an event loop, you just can't get away with it without one. About not having a "Qt project" (and maybe you mean you're not using qmake) but yet using Qt classes: good luck.

Upvotes: 1

Related Questions