Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Не открывается файлы, которые находятся рядом с exe

Автор: RazrFalcon 23.7.2011, 18:34

сабж

в линуксе хватало

setWindowIcon(QIcon(QPixmap("icon.svg")));

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

Автор: Litkevich Yuriy 23.7.2011, 22:53

Цитата(RazrFalcon @ 23.7.2011, 21:34) *
"icon.svg"
в линуксе это будет означать, что файл валяется в корне ФС или по служебным путям , а кто его туда позволит положить? больной админ?
А в виндовозе - в текущем каталоге, а текущий какой?

Автор: RazrFalcon 23.7.2011, 23:14

Нет.
"icon.svg" в лине - это рядом с экзешником. У меня так.

>>а текущий какой
Тот, в котором экзешник.

Странно, что уже в релизе, и если запускать не из креатора - все пашет. <_<

Автор: TaIRou 24.7.2011, 10:32

Тогда, как вариант, посмотри в настройках creator'a.
http://radikal.ru/F/s15.radikal.ru/i189/1107/48/c45919598ae4.png.html

Автор: Litkevich Yuriy 24.7.2011, 11:17

Цитата(RazrFalcon @ 24.7.2011, 2:14) *
"icon.svg" в лине - это рядом с экзешником.
это ерунда какая-то, что-то у тебя наверчено с переменными окружения.
классика жанра:
находишься в каталоге /home/bob, там лежит файл configure, далее командуешь:
configure
и ясен перец, что оболочка тебе скажет - "нет такого файла или каталога"
т.к. командовать в лине нужно явно:
./configure

Цитата(RazrFalcon @ 24.7.2011, 2:14) *
Тот, в котором экзешник.
НЕТ, текущий каталог это текущий (из которого команда пускается!!!)

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

Автор: RazrFalcon 24.7.2011, 14:33

>>из которого команда пускается
У меня ГУИ. 2-й клик по ехе, и прога запускается.
В лине все также.


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

Автор: BRE 24.7.2011, 15:41

Уже советовали..., но повторю - посмотри настройки креатора. Какой каталог в настройках указан в качестве рабочего.
Еще можно добавить куда нибудь в main:
qDebug() << QDir::currentPath()
и посмотреть какой каталог считается текущим.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)