Russian Qt Forum
Ноябрь 23, 2024, 03:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: как задать относительный путь к файлу  (Прочитано 22719 раз)
catprog
Гость
« : Октябрь 14, 2010, 14:42 »

Вот такой код:
Код:
...
QFile some_file("myfile.txt");
if (some_file.open(QIODevice::Append | QIODevice::Text))
...
если запустить программу вручную открывает файл в папке с программой, а вот если программу запустить через cron, то файл создается в другой папке.
А как можно сделать так чтобы файл открывался в любом случае из папки с программой и при этом не прописывать абсолютный путь?
Записан
NicK
Гость
« Ответ #1 : Октябрь 14, 2010, 15:29 »

Цитировать
QString QCoreApplication::applicationDirPath () [static]
Записан
catprog
Гость
« Ответ #2 : Октябрь 14, 2010, 19:16 »

Спасибо, эта штука возвращает одинаковый ответ в обоих случаях)
Записан
chu
Гость
« Ответ #3 : Декабрь 06, 2010, 11:49 »

пишу так:
Код:
    logo = new QLabel(this);
    logo->setPixmap(QPixmap(QCoreApplication::applicationDirPath() + "logo.jpg"));
почему картинка не появляется?
Записан
BRE
Гость
« Ответ #4 : Декабрь 06, 2010, 11:51 »

А ты попробуй посмотреть, что получается после этой конструкции:  Улыбающийся
Код
C++ (Qt)
qDebug() << QString( QCoreApplication::applicationDirPath() + "logo.jpg" );
 
Записан
deaks
Гость
« Ответ #5 : Декабрь 06, 2010, 12:41 »

absolutePath - возвращает строку без слэша в конце, и вы его не добавили, поэтому и ищет не там
Записан
chu
Гость
« Ответ #6 : Декабрь 06, 2010, 13:52 »

А ты попробуй посмотреть, что получается после этой конструкции:  Улыбающийся
Код
C++ (Qt)
qDebug() << QString( QCoreApplication::applicationDirPath() + "logo.jpg" );
 

в консоли приложения выскакиевает:
"C:/Qt/zavod-build-desktop/debuglogo.jpg"
картинка не отображается. В чем суть использования qDebug()?

absolutePath - возвращает строку без слэша в конце, и вы его не добавили, поэтому и ищет не там
спасибо! помогло, но при переносе программы на другой комп, картинка не отображается
« Последнее редактирование: Декабрь 06, 2010, 14:14 от chu » Записан
deaks
Гость
« Ответ #7 : Декабрь 06, 2010, 14:48 »

А ты попробуй посмотреть, что получается после этой конструкции:  Улыбающийся
Код
C++ (Qt)
qDebug() << QString( QCoreApplication::applicationDirPath() + "logo.jpg" );
 

в консоли приложения выскакиевает:
"C:/Qt/zavod-build-desktop/debuglogo.jpg"
картинка не отображается. В чем суть использования qDebug()?

absolutePath - возвращает строку без слэша в конце, и вы его не добавили, поэтому и ищет не там
спасибо! помогло, но при переносе программы на другой комп, картинка не отображается

qDebug - разве непонятно по названию?))нужен для вывода отладочной информации в процессе работы

странно, а вы картинку положили рядом с экзешником?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #8 : Декабрь 06, 2010, 14:53 »

Код
C++ (Qt)
QString( QCoreApplication::applicationDirPath() +  QDir::toNativeSeparators(QDir::separator())  + "logo.jpg" );
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
shirushizo
Гость
« Ответ #9 : Декабрь 06, 2010, 18:00 »

спасибо! помогло, но при переносе программы на другой комп, картинка не отображается
А в папке с бинарником папка imageformats есть? В ней соответствующая dll должна быть, иначе только PNG будет работать.
« Последнее редактирование: Декабрь 06, 2010, 18:35 от shirushizo » Записан
deaks
Гость
« Ответ #10 : Декабрь 07, 2010, 00:06 »

А в папке с бинарником папка imageformats есть? В ней соответствующая dll должна быть, иначе только PNG будет работать.

эээ....можно ссылку на доку, где это написано?
Записан
shirushizo
Гость
« Ответ #11 : Декабрь 07, 2010, 18:35 »

Если честно доков с данной информацией не видел =) Почти весь функционал Qt хранится в соответствующих плагинах. Все они лежат в %QtDir%/qt/plugins. Путь к этим плагинам (библиотекам) надо указать в переменных окружения или хранить в папке с бинарником.
Записан
deaks
Гость
« Ответ #12 : Декабрь 07, 2010, 19:12 »

ну так что же вы вводите людей в заблуждение про only png ?)
Записан
shirushizo
Гость
« Ответ #13 : Декабрь 07, 2010, 20:00 »

Мда... Qt без подключения плагинов только png отображает, а отсутствие пруфлинка этого не отменяет!
Записан
BRE
Гость
« Ответ #14 : Декабрь 07, 2010, 20:04 »

Это все зависит от того, как Qt собрано.  Улыбающийся
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.214 секунд. Запросов: 23.