XML ファイルを解析するために QtXmlPatterns モジュールを使用しようとしています。残念ながら、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 が存在するかどうかは関係ありません。
QCoreApplication または QGuiApplication または QApplication を使用しても、Windows と Linux で同じプログラムがスムーズに実行されます。
また、QXmlQuery 関数で少し遊んでみました。setFocus 関数を呼び出すと、同じ動作が得られました (QCoreApplication ではすべて問題ありませんが、QGuiApplication では setFocus 関数で永久にハングします)。
提案?