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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QSettings: получить path dir  (Прочитано 4898 раз)
billygates
Гость
« : Март 02, 2010, 11:44 »

В зависимости от операционной системы, настройки, хранящиеся и читающиейся с помощью QSettings, хранятся в разных местах на файловой системе. Есть у меня инициализированный с помощью organization и application QSettings, как у него узнать в какую директорию будет писать мой конфиг? Самому сконструировать .config_dir + organization + application я и сам могу. Я хочу чтобы это не зависило от ОС и было униформенным. Что-то в документации нет ничего подходящего.
« Последнее редактирование: Март 02, 2010, 14:37 от billygates » Записан
Akaiten
Гость
« Ответ #1 : Март 02, 2010, 12:22 »

QSettings::fileName() не работает?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Март 02, 2010, 13:55 »

Цитировать
Есть у меня инициализированный с помощью organization и application QSettings, как у него узнать в какую директорию будет писать мой конфиг?
А зачем?

Если Вы хотите сделать один конфиг для программы - то сами придумайте файл конфига и путь куда его сохранять/читать.
В *.nix - это обычно /etc, в Win - можно использовать путь ../Program Files/<Ваша программулина>/

Но, ИМХО, это "не айс", т.к. сразу отсекает возможность конфигурирования программы от обычного пользователя + нет возможности для каждого пользователя иметь свои настройки, поэтому, я бы не заморачивался по этому поводу.

А по умолчанию QSettings пишет конфиги в *.nix - /home/User/<Ваша программка> , в Win - /Documents and settings/User/Application Data/<Ваша программка> (если не ошибаюсь)

PS: все-же описано в ассистенте
« Последнее редактирование: Март 02, 2010, 13:58 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
billygates
Гость
« Ответ #3 : Март 02, 2010, 14:22 »

QSettings::fileName() не работает?
Прозевал. Кажется оно. Спасибо. Вопрос снят.

Но, ИМХО, это "не айс", т.к. сразу отсекает возможность конфигурирования программы от обычного пользователя + нет возможности для каждого пользователя иметь свои настройки, поэтому, я бы не заморачивался по этому поводу.
Я разве где-то писал, что я хочу хранить свой конфиг по нестандартному пути?

Расскажу сценарий, зачем мне это нужно: для того, чтобы хранить рядом с конфигом сопутствующие программе конфигурационные файлы отличные от формата QSettings и связанные, создаваемые в процессе работы программы, ресурсы.
Записан
NicK
Гость
« Ответ #4 : Март 02, 2010, 15:58 »

Код
C++ (Qt)
QString getApplicationDataPath(void)
/*static function to determine the application directory
the directory is returnded WITH a trailing slash*/

{
   static QString path;
   if (!path.isEmpty()) return path;
 
   /* if we havn't yet done so, determine the full db file name and make sure the directory exists
        determine path for application data dirs*/

   #ifdef Q_OS_WIN32
       wchar_t buf[MAX_PATH];
       if (!SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, 0, buf))
               path = QString::fromUtf16((ushort *)buf)+"/";
       else
               path = QDir::homePath()+"/Application Data/"; // this shouldn't happen
   #else
       path = QDir::homePath()+"/";
   #endif
 
   /*create subdir*/
   QDir dir(path);
   dir.mkdir(".MY_PROG_NAME");
   path += ".MY_PROG_NAME/";
 
   return path;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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