Arhn - архитектура программирования

Невозможно установить содержимое в QDomDocument

Я пытался перенести функцию, написанную на Python/Pyside/Qt4.7.4, на C++, камнем преткновения является установка содержимого для QDomDocument. В Python 2.6 я могу сделать это:

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

22.12.2011

  • Вывод ошибки выглядит неполным. Вы включили QDomDocument? и ссылку на QtXml? (QT += xml, если вы используете quake). 23.12.2011
  • Мне не хватало дополнения к .pro. Спасибо! 31.12.2011
  • Поправляюсь: qmake, а не quake, очевидно ;) 31.12.2011

Ответы:


1

QT += xml отсутствовал в файле проекта QMake.

09.10.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..