Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Svinina от Апрель 07, 2011, 23:06



Название: Проблема с выводом изображений в Qt Creator
Отправлено: Svinina от Апрель 07, 2011, 23:06
Здравствуйте, товарищи. Столкнулся со следующей проблемой при работе в Qt Creator. Попытался вставить изображение:
Код:
    QPixmap pix;
    pix.load("123.jpg");
    QLabel lbl;
    lbl.setPixmap(pix);
Собрал, попытался выполнить (из-под Creator) - изображение не выводится. Попробовал запустить сам exe-шник - изображение вывелось. Прописал путь к изображению полностью:
Код:
pix.load("C:\\prog\\ololo\\123.jpg");
После этого программа стала запускаться и из-под Creator.

Вопрос: почему при запуске из Creator не воспринимается сокращенный путь к файлу? Он ищет файл в какой-то другой папке? Можно это как-то изменить?


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: mutineer от Апрель 07, 2011, 23:19
При запуске из криейтора другая текущая директория


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Svinina от Апрель 07, 2011, 23:27
При запуске из криейтора другая текущая директория
Ну тогда, собственно, мой последний вопрос: можно как-нибудь изменить текущую директорию в криейторе на директорию с получившимся экзешником?


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: mutineer от Апрель 07, 2011, 23:35
Нет, но можно сделать так, чтобы экзешник собирался в текущую директорию проекта.
Если не ошибаюсь, то в .pro надо вписать DESTDIR = $$PWD, но точнее завтра скажу


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Fat-Zer от Апрель 07, 2011, 23:47
Ну тогда, собственно, мой последний вопрос: можно как-нибудь изменить текущую директорию в криейторе на директорию с получившимся экзешником?
можно, посмотрите в 'настройко проекта'->'настройки запуска'


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Ubuntu_linux от Апрель 07, 2011, 23:59
Код
C++ (Qt)
QPixmap("./123.png");
  ;)


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Svinina от Апрель 08, 2011, 00:05
можно, посмотрите в 'настройко проекта'->'настройки запуска'
Спасибо, все исправил.
Оказывается рабочим каталогом был каталог release, а изображение и сам екзешник лежали в корне проекта.


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Fat-Zer от Апрель 08, 2011, 00:08
ещё хорошо будет включить это в ресурсы...


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Svinina от Апрель 08, 2011, 00:12
ещё хорошо будет включить это в ресурсы...
Я до них еще не дочитал. ;D
Только начал изучать библиотеку и ИДЕ. :)


Название: Re: Проблема с выводом изображений в Qt Creator
Отправлено: Denjs от Апрель 08, 2011, 13:28
При запуске из криейтора другая текущая директория
Имхо - это смотря что и как и где указано в .pro файле, и как именно проводится сборка.

Если это "теневая сборка"(гадочка в разделе проект в креаторе) - то тогда настройки .pro во многом игнорятся и каталоги вывода свои.
Но имхо, это галочка "для начинающих", которые не хотят разбираться в настройках и не хотят что бы промежуточные файлы сборки мешались с исходниками. Естественно, что настройки для начинающих "создают коллизии", когда вы пытаетесь сделать что-то более сложное чем простое приложение.

Лично я определяю свои каталоги для временных файлов и каталог вывода, чтобы точно знать в каких каталогах у меня будут лежить мои бинарники, и где я должен определять каталоги с ресурсами и всего прочего что нельзя зафиксировать и вложить в бинарник на этапе сборки.

Вот типичный кусок из моего .pro файла.
Код:
TARGET = my_app_name

win32 {
    MOC_DIR += build/win
    OBJECTS_DIR += build/win
    DESTDIR += ./bin/win
else {
    MOC_DIR += build/lin
    OBJECTS_DIR += build/lin
    DESTDIR += ./bin/lin
  }
Естественно, это требует создания в каталоге исходников каталого ./build/lin  ./build/win  ./bin/lin ./bin/win .
И естественно, я снимаю галочку "теневая сборка в креаторе".

но зато я всегда точно знаю куда будет уложен бинарник, где у меня должны лежать каталоги с ресурсами,
что бы относительно пути бинарника (его можно извлечь из QApplication кажется),  я мог успешно их отсыкать.  (именно пути бинарника, а не рабочего каталога)

меня такой подход пока ещё не подводил.

PS: Из минусов описанного выше примера .pro - релиз и дебаг ложатся в один каталог. Мне это не мешает, но по идее - надо исправить. не?