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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Обязательно ли создание отдельного класса для каждой формы?  (Прочитано 16078 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #15 : Май 15, 2012, 12:17 »

Хз причем тут xml файл Непонимающий  Если форма никакой особой ф-циональности не имеет, то не видно зачем создавать класс. Загрузили из ресурсов, заполнили нужные контролы (выдернув их по имени) - и все дела
Записан
NetWorm
Гость
« Ответ #16 : Май 16, 2012, 10:11 »

Код
XML
<?xml version="1.0" encoding="UTF-8"?>
<ui>
<forms name="frm_users">
 <property
       title = "Форма пользователя"
modal = "true"
width = "289"
height= "227"
/>
</forms>
</ui>
 

Вот есть вот такой XML. Как грамотно его прочитать, чтобы например построить вот такую форму? Причем если сюда еще передавать вид класса на основании которого должно строиться. То создавать именно тот виджет который указан в файле уровень вложенности это будут Родители и наследники.
« Последнее редактирование: Май 16, 2012, 10:13 от NetWorm » Записан
daimon
Гость
« Ответ #17 : Май 16, 2012, 10:15 »

Код
XML
<?xml version="1.0" encoding="UTF-8"?>
<ui>
<forms name="frm_users">
 <property
       title = "Форма пользователя"
modal = "true"
width = "289"
height= "227"
/>
</forms>
</ui>
 

Вот есть вот такой XML. Как грамотно его прочитать, чтобы например построить вот такую форму? Причем если сюда еще передавать вид класса на основании которого должно строиться. То создавать именно тот виджет который указан в файле уровень вложенности это будут Родители и наследники.
думаю самое главное сделать рекурсию обхода дерева, а дальше вытаскивать то названию тегов текущего нода или их родителей
Записан
mutineer
Гость
« Ответ #18 : Май 16, 2012, 10:20 »

Вот есть вот такой XML. Как грамотно его прочитать, чтобы например построить вот такую форму?

http://doc.crossplatform.ru/qt/4.7.x/html-qt/qxmlreader.html

То создавать именно тот виджет который указан в файле уровень вложенности это будут Родители и наследники.
Чаво?
Записан
mks
Гость
« Ответ #19 : Май 16, 2012, 15:37 »

Вот примерно то что вам надо, посмотрите. А здесь было обсуждение.
Записан
aliks-os
Гость
« Ответ #20 : Май 17, 2012, 17:02 »

можно, QUiLoader например

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

Все зависит от того что вам нужно.
Записан
NetWorm
Гость
« Ответ #21 : Май 17, 2012, 19:51 »

Я планирую хранить файлы в blob поле базы данных.
Записан
Rikland
Гость
« Ответ #22 : Май 30, 2012, 23:02 »

Здравия всем! Вопрос такой! Есть например таблица. Там список сотрудников, и кнопки добавить, редактировать, удалить! При нажатии на первые 2 должна появится форма записи сотрудника, с соответствующими полями.. Таких похожих форм будет очень много! Вопрос обязательно ли для каждого ui файла создавать отдельный класс? т.е. помимо ui файла формы еще создавать .h и .cpp. Или же можно ui файл использовать прямо из текущего кода?

Если работа идет с БД и данные в таблицах достаточно "простые" можно обойтись и без xml-файла вообще. По нажатию кнопки "добавить/редактировать" строишь диалог "на лету" следующим образом:
Цикл по полям
- заголовок столбца =>метка с названием поля для редактирования;
- тип поля => внизу/рядом с меткой размещаешь соответствующий виджет (QLineEdit, QSpinBox, ...);
Потом дополняешь это двумя кнопками "Сохранить" и "Отмена" и диалог готов.
Я в свое время задачу ведения данных с множеством таблиц решил так. Плюс "зашивал" еще в имена виджетов наименования полей и по нажатию кнопки сохранить просто пробегался по всем виджетам и строил sql-запрос "имя поля = имя виджета, значение поля = значение в виджете".
Записан
NetWorm
Гость
« Ответ #23 : Июнь 05, 2012, 18:30 »

Вобщем кое что у меня получилось! Структура конечно жесткая но мне большего пока и не надо! А вопрос теперь вот в чем...

Есть у меня кусочек кода который выстраивает левое меню. Там я использую компомненту iisIconLabel ну это типа лейбл только как ссылка и на нее можно различные стили навешивать....
Код:
                    //Элементы меню
                    xmlItem xmlValue = xml.find(xmlGr,md_value);
                    while (!xmlValue.isNull()){
                        name = xml.attr(xmlValue,mda_name);
                        type = xml.attr(xmlValue,mda_type);
                        title = xml.attr(xmlValue,mda_title);

                        iisIconLabel *val = new iisIconLabel(title);
                        Gr->addIconLabel(val);

                        xmlValue = xml.nextSibling(xmlValue);
                    }

вот то что получилось...


В правой части должны появляться формы в зависимости от того что выбрано в левой части меню... Вот и вопрос как организовать можно это???
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #24 : Июнь 05, 2012, 18:36 »

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

Код
C++ (Qt)
while(!asleep()) sheep++;
NetWorm
Гость
« Ответ #25 : Июнь 05, 2012, 18:40 »

Я это понимаю! Вопрос немного в другом... каким образом мне к пункту меню привязать определенную форму и показать ее на  панели справа!!!
Записан
V1KT0P
Гость
« Ответ #26 : Июнь 05, 2012, 18:48 »

Я это понимаю! Вопрос немного в другом... каким образом мне к пункту меню привязать определенную форму и показать ее на  панели справа!!!
Так добавь атрибут которому будет присваиваться имя формы которая должна быть вызвана при нажатии. А затем уже отображай форму зная имя.
Записан
NetWorm
Гость
« Ответ #27 : Июнь 05, 2012, 18:50 »

Именно в этом затык и состоит у меня!
Записан
NetWorm
Гость
« Ответ #28 : Июнь 05, 2012, 18:53 »

Нужно где-то хранить структуру эту чтобы потом в поиске открывать нужную форму!!!
Записан
V1KT0P
Гость
« Ответ #29 : Июнь 05, 2012, 19:04 »

Нужно где-то хранить структуру эту чтобы потом в поиске открывать нужную форму!!!
Перебрать при запуске все файлы-формы и вытянуть из каждой название, положить название и имя файла в QHash. Либо вместо названия просто хранить относительную ссылку на файл-форму которую требуется отобразить. Вроде все просто.
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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