Зацените класс arkStringRes, Хочу знать мнение форумчан |
Здравствуйте, гость ( Вход | Регистрация )
Зацените класс arkStringRes, Хочу знать мнение форумчан |
sagifire |
5.11.2008, 16:38
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 5.11.2008 Пользователь №: 412 Спасибо сказали: 0 раз(а) Репутация: 1 |
arkStringRes - класс предназначений для хранения разных подстановок строковых переменных хранимых в xml файлах.
Сайт с описанием! Жду коментов |
|
|
Litkevich Yuriy |
5.11.2008, 16:50
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
что-то я из описания нибильмеса не понял
|
|
|
sagifire |
5.11.2008, 17:12
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 5.11.2008 Пользователь №: 412 Спасибо сказали: 0 раз(а) Репутация: 1 |
Просто говоря это аналог tr()
Подстановки хранятся в файлах ресурсов (xml), которые подключаются при помощи метода addResource(). При подключении фалов подстановки не считываются в память, а только формируется список соответствий групп подстановок с файлами. Подстановки загружаются в память только из конкретной группы при помощи метода setGroup(). Получить значение можно методом getValue() класс можно использовать для интернационализации программ |
|
|
Litkevich Yuriy |
5.11.2008, 17:20
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
на прогорге вот зделал товарищь TranslationManager для переключения языка интерфейса на лету, это я понимаю зачем нужно. А про твой компонент пока области применения мне неособо понятны.
|
|
|
ViGOur |
5.11.2008, 17:32
Сообщение
#5
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
класс можно использовать для интернационализации программ Все знают для чего используется QObject::tr потому, что об этом написано в мануале. Я вот после прочтения такого описания не совсем понял, чем он лучше tr? sagifire, для того, чтобы донести до конечного пользователя свой класс, нужно описать подробно, желательно с примерами и схемами: 1. что он из себя представляет? 2. как и для чего он используется? 3. как он взаимодействует с кодом? 4. чем его использование лучше чем tr? и прочее... Ты не подумай, что мы придираемся, просто хотелось бы подробностей и не по чуть-чуть выуживать из тебя, а чтобы ты сам все описал... |
|
|
sagifire |
5.11.2008, 18:02
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 5.11.2008 Пользователь №: 412 Спасибо сказали: 0 раз(а) Репутация: 1 |
Я вот после прочтения такого описания не совсем понял, чем он лучше tr? Кстати я не знал о TranslationManager когда создавал топик Это моя попытка сделать удобный механизм для смены языка интерфейса без перезапуска программы. Интересно узнать твоё мнение о этом мануале. |
|
|
ViGOur |
5.11.2008, 18:10
Сообщение
#7
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
sagifire |
5.11.2008, 18:30
Сообщение
#8
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 5.11.2008 Пользователь №: 412 Спасибо сказали: 0 раз(а) Репутация: 1 |
Подстановка - єто замена значения (или вариант значения)
Например у нас есть ресурс с ключом my_key И есть две группы в которых ресурс имеет разное значение для grp1 єто значение_групи1 для grp2 єто значение_групи2 Тогда можно получить этих два значения следующим способом: arkStringRes myres; // создаем класс myres.addResource("res.xml"); // подключаем ресурс myres.setGroup("grp1"); // будем получать значения из первой группы (grp1) btnOk.setText(myres[my_key]); // вот так получаем значение, текст батона теперь "значение_групи1" myres.setGroup("grp2"); // будем получать значения из первой группы (grp2) btnOk.setText(myres[my_key]); // текст батона теперь "значение_групи2" Содержание res.xml: <?xml version="1.0"?> <a> <arkStringResource group="grp1"> <record key="my_key"> значение_групи1 </record> </arkStringResource> <arkStringResource group="grp2"> <record key="my_key"> значение_групи2 </record> </arkStringResource> </a> Особенность класса в том что в он содержит в памяти только значения для одно группы а не для всех. При смене группы класс будет заново загружать значения. |
|
|
Litkevich Yuriy |
5.11.2008, 18:57
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Например у нас есть ресурс с ключом my_key вот эти-то слова и не понятны, что за ресурс? делай конкретный пример.И есть две группы в которых ресурс имеет разное значение для grp1 єто значение_групи1 для grp2 єто значение_групи2 Я, например, в начале думал, что речь идет о таких вещах: Имеется php-файл:
надо подставить вместо переменной {$HELLO} значение переменной из программы .... и так далее пошло описание как в коде програмы этот финт выкинуть. |
|
|
sagifire |
6.11.2008, 10:37
Сообщение
#10
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 5.11.2008 Пользователь №: 412 Спасибо сказали: 0 раз(а) Репутация: 1 |
Да, мануал подкачал . Буду переделывать
Попробую ещё раз объяснить, но попроще. Класс arkStringRes представляет собой аналог QHash <QString, QString> c возможностю загрузки группы записей из файла XML. Я постарался сделать загрузку записей максимально удобной. Она состоит из двух этапов: 1 - Подключение файла XML методом addResource(). На этом этапе определяется какие группы записей входят в файл и создаться ассоциации группа -> файл. Ассоциации могут быть один к много и наоборот много к одному, иначе говоря одна группа может бить в двух или больше файлах и в одном файле может быть много групп. 2 - Загрузка записей одной из групп производится методом setGroup(). Класс просматривает в каких файлах размещена группа записей и загружает их в память. Теперь они доступны через метод getValue(). В разных группах могут быть записи с разным набором ключей. Область применения: Везде где нужен QHash <QString, QString> с возможностю загрузкы записей из файла. Например чтение настроек программ. |
|
|
Текстовая версия | Сейчас: 27.4.2024, 13:21 |