Russian Qt Forum
Июнь 15, 2024, 22:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Перекомпилировать QSettings  (Прочитано 11214 раз)
Андрей А.
Гость
« : Декабрь 13, 2006, 19:49 »

Если никто не может помочь с решением проблемы слэшей, то может подскажете, как правильно внедрить в Qt подправленный файл QSettings.cpp. Можно это сделать, неперекомпилируя всю библиотеку?
Записан
Dendy
Гость
« Ответ #1 : Декабрь 13, 2006, 20:02 »

Не советую етого делать, потеряешь обратную совместимость. Посмотри в сторону: QSettings::registerFormat(). Задай вопрос Троллям.
Записан
Андрей А.
Гость
« Ответ #2 : Декабрь 13, 2006, 20:21 »

Цитировать

Форум не чат - иногда потерпеть надобно. Люди сюда периодически заходят.

Усе понимаю, но сроки горят. Поэтому хочу сразу план "В" провентилировать.

добавлено спустя 6 минут:

 
Цитата: "Dendy"
Не советую етого делать, потеряешь обратную совместимость. Посмотри в сторону: QSettings::registerFormat(). Задай вопрос Троллям.

C registerFormat() я чего-то не въезжаю. В документации по этой функции совсем мало написано. Но по-моему это все-таки для реестра не применимо.
А Тролли отвечают некоммерческим пользователям? И куда лучше писать?
Записан
Tonal
Гость
« Ответ #3 : Декабрь 13, 2006, 20:23 »

Использую QSettings для сохранения/восстановления в реестр - без проблем.
Записан
Андрей А.
Гость
« Ответ #4 : Декабрь 13, 2006, 20:25 »

Цитата: "Tonal"
Использую QSettings для сохранения/восстановления в реестр - без проблем.

А у вас используются имена параметров с обратными слэшами?
Записан
Dendy
Гость
« Ответ #5 : Декабрь 13, 2006, 20:29 »

На сколько я понимаю в вин-реестре все разделители - обратньІе слеши. Какая платформа хоть?
Записан
Вячеслав
Гость
« Ответ #6 : Декабрь 14, 2006, 00:42 »

Хм .. А очень тупой вариант _все_ загнать в QDataStream и сохранять в QSettings его ? Ы ?
Записан
Вудруф
Гость
« Ответ #7 : Декабрь 14, 2006, 07:50 »

Цитировать
А Тролли отвечают некоммерческим пользователям?

Да
Записан
Tonal
Гость
« Ответ #8 : Декабрь 14, 2006, 07:53 »

Может поможет внимательное изучение вот этого примера:
$(QTDIR)\examples\tools\settingseditor

Особенно вот этого пункта главного меню:
Меню File/"Open Windows Registry path..."
Записан
Андрей А.
Гость
« Ответ #9 : Декабрь 14, 2006, 11:06 »

Цитата: "Dendy"
На сколько я понимаю в вин-реестре все разделители - обратньІе слеши. Какая платформа хоть?


WinXP. Да, разделители - обратные слэши, но шибко хитрый Майкрософт додумался и имя параметра сделать с обратными слэшами. И это только добавляет проблем.

добавлено спустя 8 минут:

 
Цитата: "Tonal"
Может поможет внимательное изучение вот этого примера:
$(QTDIR)\examples\tools\settingseditor

Особенно вот этого пункта главного меню:
Меню File/"Open Windows Registry path..."

Этот пример при открывании интересующих меня параметров (\HKLM\Hardware\Devicemap\Serialcomm\) выдает их в неправильном виде с указанием "Invalid". Так что там все сделано также неправильно, как и у меня.

добавлено спустя 2 минуты:

 
Цитата: "Вячеслав"
Хм .. А очень тупой вариант _все_ загнать в QDataStream и сохранять в QSettings его ? Ы ?

Мне же не свой параметр нужен, а системный. Если бы я свой сохранял, ни за что бы не додумался дать ему такое имя. Улыбающийся
Записан
Tonal
Гость
« Ответ #10 : Декабрь 14, 2006, 11:32 »

Похоже действительно ошибочка в QSettings.
Отошли минимальный код тролям - исправят.

А в программе придётся видимо напрямую с реестром работать...
Записан
Андрей А.
Гость
« Ответ #11 : Декабрь 14, 2006, 11:38 »

Цитата: "Tonal"
Похоже действительно ошибочка в QSettings.
Отошли минимальный код тролям - исправят.

А в программе придётся видимо напрямую с реестром работать...

Да уж, как верно подмечено в QSettings.h с безумным API реестра. Крутой
А какой код отослать? Свой? И где они исправят? Неужели у себя?
Записан
bigirbis
Гость
« Ответ #12 : Декабрь 14, 2006, 11:45 »

Но все-таки для теста, ИМХО,  лучше этот коде сперва сюда выложить.
Записан
Андрей А.
Гость
« Ответ #13 : Декабрь 14, 2006, 11:52 »

#ifdef Q_WS_WIN   
   QSettings systemCOMs("\\HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM",QSettings::NativeFormat);
   QStringList COMs = systemCOMs.allKeys();
   for(int i=0;i<COMs.size();i++)
      ui.comboPort->insertItem(i,systemCOMs.value(COMs.at(i)).toString());
#endif
Записан
Tonal
Гость
« Ответ #14 : Декабрь 14, 2006, 17:50 »

Заслал баг
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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