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

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

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Обязательно ли создание отдельного класса для каждой формы?  (Прочитано 16453 раз)
NetWorm
Гость
« : Май 14, 2012, 19:38 »

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

Сообщений: 4746



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

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Май 14, 2012, 21:20 »

Насколько я понял ТСса - он хочет сказать, что ему нужно много одинаковых форм...

Или же я совсем разучился понимать людей.

Записан
NetWorm
Гость
« Ответ #3 : Май 14, 2012, 21:31 »

Много мелких форм редактирования! Например добавление и редактирование сотрудника. Добавление и редактирование пользователей. Редактирование товара и прочих справочных данных... Как то не хочется для каждой мелкой формы писать свой класс. Хочется как-то оптимально чтоб все было. Например разные формы обрабатывались в одном классе!
Записан
iroln
Гость
« Ответ #4 : Май 14, 2012, 21:52 »

Класс должен выполнять одну единственную задачу. Если пихать в один класс обработку разных данных, такой код быстро превратится в лапшу и говнокод. Антипаттерн god object. У вас будет god form object. Улыбающийся ну или я не понимаю вашу идею.  Строит глазки
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #5 : Май 14, 2012, 21:55 »

можно просто свой базовый класс-наследник виджета или диалога создать, а потом всё наследовать от него
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
NetWorm
Гость
« Ответ #6 : Май 14, 2012, 22:00 »

Мне не хочется загромождать проект классами форм в которых будет по 2 метода init и save. Но сами формы внешне разные...
Записан
V1KT0P
Гость
« Ответ #7 : Май 14, 2012, 22:08 »

Мне не хочется загромождать проект классами форм в которых будет по 2 метода init и save. Но сами формы внешне разные...
И куда-же будешь пихать валидацию данных?
Я бы наверно сделал класс который считывает параметры формы из xml. Правда чем больше разницы между логикой форм тем запутанее будет класс.
Записан
NetWorm
Гость
« Ответ #8 : Май 14, 2012, 22:11 »

т.е. Предлагаете для каждой формы делать отдельный класс?
Записан
V1KT0P
Гость
« Ответ #9 : Май 14, 2012, 22:25 »

т.е. Предлагаете для каждой формы делать отдельный класс?
Нет, я же написал, один единственный класс. Логика которого задается xml файлом. В xml файле описание формы(ссылка на ui, валидаторы для полей, куда сохранять, откуда загружать и т.д.). Если у тебя действительно все очень похоже, то сможешь создавать новые формы не меняя ни одной строчки кода, просто добавить xml файл.
Записан
daimon
Гость
« Ответ #10 : Май 14, 2012, 23:05 »

т.е. Предлагаете для каждой формы делать отдельный класс?
Нет, я же написал, один единственный класс. Логика которого задается xml файлом. В xml файле описание формы(ссылка на ui, валидаторы для полей, куда сохранять, откуда загружать и т.д.). Если у тебя действительно все очень похоже, то сможешь создавать новые формы не меняя ни одной строчки кода, просто добавить xml файл.
прикольная затея

а вот погугли ещё тут http://www.learnqt.com/how-to-learn-qt/qt-bookvar/qt-designer-steps-more/
« Последнее редактирование: Май 14, 2012, 23:14 от daimon » Записан
NetWorm
Гость
« Ответ #11 : Май 15, 2012, 09:02 »

Меня вдохновила сия программа http://www.evolution-it.ru/files/KlatchSetup_Demo.exe там в БД есть интересная таблица. "z_core" там хранится xml файл с описанием всего интерфейса... Вот что-то типа такого мне и нужно
Записан
daimon
Гость
« Ответ #12 : Май 15, 2012, 11:58 »

Меня вдохновила сия программа http://www.evolution-it.ru/files/KlatchSetup_Demo.exe там в БД есть интересная таблица. "z_core" там хранится xml файл с описанием всего интерфейса... Вот что-то типа такого мне и нужно


на самый крайняк можно поменять всё содержимое формы, та где создаёшь её объект - через findChild, с XMLвсё равно получиться универсальн0))
Записан
NetWorm
Гость
« Ответ #13 : Май 15, 2012, 12:05 »

Короче я понял более универсально будет написать некий движок который будет строить формы на основании XML файла!!!
Записан
daimon
Гость
« Ответ #14 : Май 15, 2012, 12:07 »

Короче я понял более универсально будет написать некий движок который будет строить формы на основании XML файла!!!
выложишь потом на обозрение?

далеко не отходи глянь как дизайнер генерит ui
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


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