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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Платформонезависимый экспорт настроек QSettings  (Прочитано 7933 раз)
Sacha_D
Гость
« : Март 21, 2012, 16:03 »

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

Как их экспортировать эти настройки в этом же самом виде в файл по пути, указанному пользователем. Чтобы на другом компьютере просто добавить ветку реестра в реестр или скопировать ini файл в соответствющее место?
Записан
mutineer
Гость
« Ответ #1 : Март 21, 2012, 16:05 »

Может лучше сразу на всех платформах писать в ini?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Март 21, 2012, 16:06 »

Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Март 21, 2012, 16:21 »

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

Qt 5.11/4.8.7 (X11/Win)
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Март 21, 2012, 16:42 »

Храни на всех платформах в INI файле, к тому же это быстрее, чем реестр.
Записан
Disaron
Гость
« Ответ #5 : Март 22, 2012, 06:11 »

Хранить в ini по пути QDir::homePath ()
Экспорт представляет из себя тупое копирование файла.
Записан
Янковский Александр
Гость
« Ответ #6 : Март 22, 2012, 09:14 »

Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4

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

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Март 22, 2012, 09:21 »

Храни настройки рядом с прогой. http://doc.qt.nokia.com/4.8-snapshot/qsettings.html#QSettings-4

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

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

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #8 : Март 22, 2012, 09:27 »

Пантер - ты неправ.

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

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

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

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Март 22, 2012, 09:28 »

Я про жестко заданные и не говорил. Есть home, где можно хранить.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
QuAzI
Гость
« Ответ #10 : Март 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 никогда других ОС не видел"
Записан
VozaMFC
Гость
« Ответ #11 : Март 22, 2012, 14:47 »

Приходит на ум написать функцию импорта настроек. В зависимости какая ось - развернет настройки где надо.
Записан
Sacha_D
Гость
« Ответ #12 : Март 26, 2012, 11:22 »

Благодарю, сделал через ini-файлы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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