【问题标题】:Use Qts QXmlSchemaValidator without QApplication在没有 QApplication 的情况下使用 Qts QXmlSchemaValidator
【发布时间】:2017-11-21 13:29:18
【问题描述】:

我在 Qt 方面需要一些帮助,因为我并不真正了解 Qt 库在 Visual Studio 项目中的使用方式。我尝试使用 QtXmlPatterns 中的 QXmlSchemaValidator 类来针对模式验证 xml 文件,但我无法实例化 QApplication 对象,因为我无权访问 main.cpp 文件。我不想创建一个 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 文件?

提前致谢!

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    是的,请改用QCoreApplication

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2010-12-09
      • 2018-03-02
      • 2019-06-20
      • 2014-10-07
      • 2018-04-08
      相关资源
      最近更新 更多