2011-12-22 2 views
0

Я пытаюсь перенести функцию, написанную на 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 может читать , У кого-нибудь есть идеи, которые я могу использовать для отладки этого?

+2

Выход ошибки выглядит неполным. Включили ли вы QDomDocument? и ссылку на QtXml? (QT + = xml, если вы используете землетрясение). –

+0

Мне не хватало дополнения к .pro. Благодаря! – RegularlyScheduledProgramming

+0

Исправление: qmake, а не землетрясение, очевидно;) –

ответ

Смежные вопросы