Я пытаюсь перенести функцию, написанную на Python/Pyside/Qt4.7.4, в C++, точка привязки заключается в настройке содержимого для QDomDocument. В Python 2.6 Я могу это сделать:Невозможно setContent в QDomDocument
doc = QtXml.QDomDocument("initData")
file = QtCore.QFile("initData.xml")
if not file.open(QtCore.QIODevice.ReadOnly):
exit()
if not doc.setContent(file):
file.close()
exit()
И все это работяга доры (файл существует, может быть прочитан программой, получает синтаксический анализ и полученный DOM Document можно манипулировать, как я бы ожидать), но в C++ (с использованием Qt Creator 2.3.1, Qt 4.7.4, OSX). Если я пытаюсь:
QFile *file = new QFile("/Users/UserName/Desktop/ProgramFolder/files/initData.xml");
file->open(QIODevice::ReadWrite|QIODevice::Text);
QDomDocument *doc = new QDomDocument;
doc->setContent(file);
я получаю:
Symbols not found
file not found
Collect2 - Id returned exit 1 status
file not found
Когда я удалить линии три и четыре, и заменить их с IsOpen заявление отладки я получаю подтверждение, что файл существует, и что Qt может читать , У кого-нибудь есть идеи, которые я могу использовать для отладки этого?
Выход ошибки выглядит неполным. Включили ли вы QDomDocument? и ссылку на QtXml? (QT + = xml, если вы используете землетрясение). –
Мне не хватало дополнения к .pro. Благодаря! – RegularlyScheduledProgramming
Исправление: qmake, а не землетрясение, очевидно;) –