crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Добавление существующих файлов в проект
epishev
  опции профиля:
сообщение 24.5.2011, 10:50
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет!

Как в проект добавить файл? Задача такая — нужно обращаться к файлу только по имени

QFile file(“tools.xml”);


Добавил в проект файл tools.xml (ПК мыши по проекту ->Добавить существующие файлы...), лежащий в подкаталоге проекта, но мне все равно приходится писать полный путь к файлу.

Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.5.2011, 10:55
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2889
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


"../имя_подкаталога/tools.xml"

ну и сам файл в проект тоже надо включить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 24.5.2011, 10:55
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

Спасибо сказали: 11 раз(а)




Репутация:   1  


можно через QApplication::aplicationDirPath + /tools.xml
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 24.5.2011, 11:04
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 24.5.2011, 11:55) *
"../имя_подкаталога/tools.xml"

ну и сам файл в проект тоже надо включить


пишу:

void NewProjectDialog::traverseNodeRun()
{
    QFile file("../NewProjectDialog/tools.xml");
    QDomDocument doc;
    if(file.open(QIODevice::ReadOnly))
    {
        if(doc.setContent(&file))
        {
            QDomElement domElement = doc.documentElement();
            connect(this,SIGNAL(signalTraverseNode(QDomNode)),
                    this,SLOT(traverseNode(QDomNode)));
            //вызов слота traverseNode(const QDomNode &node)
            emit signalTraverseNode(domElement);
        }
        file.close();
    }
}


в .pro
OTHER_FILES += \
    NewProjectDialog/tools.xml


Все равно не выполняется условие
 if(file.open(QIODevice::ReadOnly))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.5.2011, 11:09
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2889
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


epishev, извиняюсь, я почему то про инклуд подумал. Тут по другому, лучше весь путь указывать, действительно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 24.5.2011, 11:17
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 24.5.2011, 12:09) *
epishev, извиняюсь, я почему то про инклуд подумал. Тут по другому, лучше весь путь указывать, действительно

Получается нельзя сделать так, чтобы xml файл был частью проекта?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.5.2011, 11:31
Сообщение #7


фрилансер
******

Группа: Участник
Сообщений: 2889
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


epishev, можно положить подкаталог в ресурс *.qrc

RESOURCES += \
    ../подкаталог/ресурс.qrc \


файл ресурса (ресурс.qrc):
<RCC>
    <qresource prefix="/префикс_ресурсного_файла">
        <file>файл1</file>
        <file>файл2</file>
    </qresource>
</RCC>


потом доступ будет осуществляться так :

":/префикс_ресурсного_файла/файл"


в пути к файлу могут быть и подкаталоги

Сообщение отредактировал Алексей1153 - 24.5.2011, 11:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 24.5.2011, 13:37
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 24.5.2011, 12:31) *
epishev, можно положить подкаталог в ресурс *.qrc


То что надо, спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 24.5.2011, 16:04
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

Спасибо сказали: 11 раз(а)




Репутация:   1  



потом доступ будет осуществляться так :

":/префикс_ресурсного_файла/файл"

Можно еще проще сделать,в редакторе ресурсов присвоить псевдоним,тогда можно обращаться по ":псевдоним_ресурса"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 25.5.2011, 7:26
Сообщение #10


фрилансер
******

Группа: Участник
Сообщений: 2889
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ernie, с псевдонимами лично я путался :) Ну, кому как
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.11.2019, 19:15