我正在尝试使用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函数上永远挂起)。
连连呢?