возврат текущего каталога

Изображение пользователя mokynis.
Опубликовано:
Раздел:

есть 2 исполняемых файла. Оба лежат в одном и том же каталоге. Один сделан в текстовом редакторе, второй-проект QT.
В обоих есть строка:
cout<), второй пишет мне мой домашний каталог. А мне надо, чтобы QT-программа определила, откуда ее запустили. Там по идее потом должна информация из другого файла браться, а лежать он будет рядом с этой QT-программой. Имя файла задано жеско, а вот где в каком каталоге все это будет лежать, заранее не известно. Может какой-нибудь другой способ есть узнать местоположение?


Изображение пользователя Meloman.

возврат текущего каталога #1

mokynis писал(а):
А мне надо, чтобы QT-программа определила, откуда ее запустили.
QString tmp = QDir::currentPath (); (но я проверял на Qt4).

Изображение пользователя mokynis.

возврат текущего каталога #2

у меня, увы, версия 3.3.4 (с ASP Linux 11 в комплекте шла), там такой функции нет. Есть Dir::currentDirPath() и QDir::current().absPath(), но они по-прежнему возвращают домашний каталог. Сам бы написал, да не знаю за что тут взяться.
Мы, кстати, земляки, я из Салехарда.

Изображение пользователя Meloman.

возврат текущего каталога #3

Я не смог скомпилировать под Qt3. Что-то не складывается у меня дружба с этой версией. Думаю, что можно сделать такую конструкцию:
QDir::current ().path() (а не absPath() ). Почитайте еще доку по C/C++ : Где-то попадался пример, когда получается текущий каталог из системных переменных... По-моему,- char *argv[].

Изображение пользователя mokynis.

возврат текущего каталога #4

cuttent().path() выдает тот же домашний каталог, что и absPath().
Вот с argv[0] получается лучше-показывает каталог программы, но сам *argv[] я могу увидеть только в main.cpp, а из формы (...ui.h) аргументов командной строки не видать. Я так и не понял как их туда передать можно. В main.cpp есть строки
QApplication a( argc, argv );
myform w;
w.show();
Вот после show() их уже нет. Пытался обратиться из формы к a->argv[] - фигушки, оттуда и "а" уже неизвестна.

Изображение пользователя Meloman.

возврат текущего каталога #5

mokynis писал(а):
Вот с argv[0] получается лучше-показывает каталог программы, но сам *argv[] я могу увидеть только в main.cpp, а из формы (...ui.h) аргументов командной строки не видать. Я так и не понял как их туда передать можно.
Скорее всего- в глобальную переменную можно передать. Ведь Вы же в main.cpp вызываете форму, обработку которой делаете в другом cpp-файле, так ведь?

Изображение пользователя mokynis.

Re: возврат текущего каталога #6

Спасибо, я так и сделал. Теперь все ОК