Russian Qt Forum

Qt => Общие вопросы => Тема начата: Sacha_D от Март 21, 2012, 16:03



Название: Платформонезависимый экспорт настроек QSettings
Отправлено: Sacha_D от Март 21, 2012, 16:03
Здравствуйте. Для сохранения/загрузки настроек программы использую QSettings. Она их хранит в виде и месте, определяемом платформой. (реестр для windows, ini-файлы для Linux и т.д.). Возникла проблема переноса этих настроек с компьютера на компьютер.

Как их экспортировать эти настройки в этом же самом виде в файл по пути, указанному пользователем. Чтобы на другом компьютере просто добавить ветку реестра в реестр или скопировать ini файл в соответствющее место?


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: mutineer от Март 21, 2012, 16:05
Может лучше сразу на всех платформах писать в ini?


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Пантер от Март 21, 2012, 16:06
Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: GreatSnake от Март 21, 2012, 16:21
Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4
Скорее всего будут проблемы с записью в этот файл - ведь обычный ограниченный пользователь не сможет туда писать.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Alex Custov от Март 21, 2012, 16:42
Храни на всех платформах в INI файле, к тому же это быстрее, чем реестр.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Disaron от Март 22, 2012, 06:11
Хранить в ini по пути QDir::homePath ()
Экспорт представляет из себя тупое копирование файла.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Янковский Александр от Март 22, 2012, 09:14
Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4

Наверное поэтому в домашнем окружении юзера столько каталогов скрытых и появляется, что все проги кидают конфиги рядом с собой!
Кто ж такие советы дает?! Все от этого уходят, а вы - советуете.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Пантер от Март 22, 2012, 09:21
Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4

Наверное поэтому в домашнем окружении юзера столько каталогов скрытых и появляется, что все проги кидают конфиги рядом с собой!
Кто ж такие советы дает?! Все от этого уходят, а вы - советуете.

Вас это волнует? Хотите об этом поговорить? :D
Вообще, юзеру там нечего делать и скрытые каталоги не должны его интересовать.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Bepec от Март 22, 2012, 09:27
Пантер - ты неправ.

Я, купив SSD, понял какую хрень творят программисты. Имея переопределённые на HDD папки аля "%programFiles% %user%" и аналогичные, я постоянно удивляюсь прогам, которые создают "C:\Documents and settings\all users\%1.arg("какая то херь любая, типо апликейшен дата")" .

И эти сволочи уверены, что блин такая папка есть на диске C: и даже не пробуют читать системные переменные... А для SSD это лишняя нервотрёпка.

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


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Пантер от Март 22, 2012, 09:28
Я про жестко заданные и не говорил. Есть home, где можно хранить.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: QuAzI от Март 22, 2012, 12:16
Пантер - ты неправ.
Но там же по ссылке
Код:
If the file format is IniFormat, the following files are used on Unix and Mac OS X:

   1. $HOME/.config/MySoft/Star Runner.ini (Qt for Embedded Linux: $HOME/Settings/MySoft/Star Runner.ini)
   2. $HOME/.config/MySoft.ini (Qt for Embedded Linux: $HOME/Settings/MySoft.ini)
   3. /etc/xdg/MySoft/Star Runner.ini
   4. /etc/xdg/MySoft.ini

On Windows, the following files are used:

   1. %APPDATA%\MySoft\Star Runner.ini
   2. %APPDATA%\MySoft.ini
   3. %COMMON_APPDATA%\MySoft\Star Runner.ini
   4. %COMMON_APPDATA%\MySoft.ini
И где-то там большими кучами были примеры и прочие плюшки, там всё это разжёвано, всё красиво продумано, без самодельных велосипедов в духе "а путь будет статическим потому что разраб кроме win98 никогда других ОС не видел"


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: VozaMFC от Март 22, 2012, 14:47
Приходит на ум написать функцию импорта настроек. В зависимости какая ось - развернет настройки где надо.


Название: Re: Платформонезависимый экспорт настроек QSettings
Отправлено: Sacha_D от Март 26, 2012, 11:22
Благодарю, сделал через ini-файлы.