1

我正在尝试使用 QtXmlPatterns 模块来解析 XML 文件。不幸的是,在 MacOsX 10.7&10.8 上使用 Qt5.1,我发现了 Qt4.8.5 没有的问题。

#include <QCoreApplication>
#include <QGuiApplication>
#include <QXmlQuery>
#include <QStringList>
#include <QDebug>

int main(int argc, char *argv[])
{
    //QGuiApplication a(argc, argv);
    QCoreApplication a(argc, argv);
    QXmlQuery qry;
    qry.setQuery("doc(\"file.xml\")");
    QStringList lst;
    qry.evaluateTo(&lst);
    qDebug() << lst;
    return 0;
}

这是我正在使用的 .pro。

QT += core gui xmlpatterns
TARGET = Test
TEMPLATE = app
CONFIG -= app_bundle
SOURCES += main.cpp

如果我运行 QCoreApplication 一切正常,相反,如果我打开 QGuiApplication(或 QApplication),这个小程序将永远挂在 evaluteTo 函数上。file.xml 是否存在并不重要。

在 Windows 和 Linux 上,即使我使用 QCoreApplication 或 QGuiApplication 或 QApplication,相同的程序也能顺利运行。

我也尝试过使用 QXmlQuery 函数。如果我调用 setFocus 函数,我会得到相同的行为(使用 QCoreApplication 一切正常,使用 QGuiApplication 它永远挂在 setFocus 函数上)。

建议?

4

0 回答 0