Russian Qt Forum
Ноябрь 22, 2024, 23:43
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
проектирование пользовательского интерфейса
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: проектирование пользовательского интерфейса (Прочитано 9624 раз)
qt_newer
Гость
проектирование пользовательского интерфейса
«
:
Июль 15, 2014, 14:42 »
Надо сделать приложение для виндоуз эмбеддед. Много форм (у всех есть заголовок, 2 кпонки внизу), в этих формах различные элементы управления, например, текст ареа, инпут бокс и т.п. Сказали, что так как надо экономить время-память, все делать в одной форме, динамически меняя элементы в ней. Классы надо спроектировать соответственно для элементов управления (включающие валидатор, установку стиля, изменение значений и т.п.) Посоветуйте, пжл, какие-нибудь примеры подобного, или просто идеи, не знаю, как подойти к делу
Записан
qt_newer
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #1 :
Июль 15, 2014, 15:23 »
работать должно на QT 4.8 (max), т.е. без QML
Записан
Susenin
Новичок
Offline
Сообщений: 35
Re: проектирование пользовательского интерфейса
«
Ответ #2 :
Июль 15, 2014, 16:13 »
Расскажите подробнее, что конкретно не понятно?
Пока такие советы:
1. Максимально отделить GUI от логики работы программы (ядра). GUI должен быть незатейливым проводником сигналов между пользователем и ядром.
2. Возможно, требования к программе еще не до конца сформировались и будут меняться по ходу разработки программы. Надо предусмотреть эту возможность. Если вы создадите динамическое изменение компонентов на одной форме, вас ждет много боли, когда требования к GUI будут меняться.
Пишите программу со стандартным подходом, не запариваясь на экономию памяти и остального. Вот когда напишете, протестируете, тогда и будете оптимизировать GUI. У вас
это легко получится, ведь вы GUI хорошо отделили от ядра по моему первому совету
Записан
qt_newer
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #3 :
Июль 15, 2014, 16:53 »
Спасибо за ответ, но начальство говорит заморачиваться, значит заморачиваться
Это мой первый проект на кьют (знания чисто теоретические), а программа уже существует на другой платформе (чужая, кода у меня нет)- просто перевести надо, начав с ГУИ.
Не понятно, как правильно сделать динамическое изменение элементов и классы спроектировать. Приложение выглядит примерно так: выбор режима просмотра- режим 1- ввод данных- ввод след. данных, возврат на главную страницу,
режим 2- ввод- проверка, изменение фона на красный для неверных данных- снятие отпечатков и т.п. и т.д. Много, много форм- переход между ними туда-обратно, еще куда-то в середину
Т.е. ответ, например, использовать QtStackedWidget, сделать несколько страниц с кнопками внизу и менять у них надписи, слоты по ходу дела (только как пример!).
Классы для кнопки, инпут бокса, текст ареа и т.п. создам, надеюсь, самостоятельно
Записан
Bepec
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #4 :
Июль 15, 2014, 17:12 »
Не страдайте геморроем
Делать полностью динамический интерфейс можно, но это приведёт к перерасходу времени, нервов и денег.
Одна правка и у вас полетит всё/вся и вы будете страдать в прямом смысле этого слова.
Разделите всё на формы. Потом формы создавайте динамически на главном виджете. Вот и весь сказ.
PS а если говорят что "память сбережёт", то думать люди не умеют. Если сделать "наслаивающийся интерфейс", то он всегда будет в памяти. А динамически подгружаемые формы только в момент пользования
Записан
qt_newer
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #5 :
Июль 15, 2014, 17:29 »
даа, а мне-то как не хочется этим заниматься. Вариант "создать форму и удалить ее сразу после использования" был предложен мной первым, в ответ было сказано, что будет медленно. (целевое устройство совсем слабенькое). Про "наслаивающийся интерфейс" не знаю, м.б. имелось в виду, что каждый элемент управления создается, удаляется по мере использования (гмм, и на это тоже время идет ?)
Записан
Susenin
Новичок
Offline
Сообщений: 35
Re: проектирование пользовательского интерфейса
«
Ответ #6 :
Июль 15, 2014, 20:14 »
Цитата: qt_newer от Июль 15, 2014, 17:29
Вариант "создать форму и удалить ее сразу после использования" был предложен мной первым, в ответ было сказано, что будет медленно. (целевое устройство совсем слабенькое).
Сделайте тестовое приложение, две насыщенные формы. Поочереди их создавайте, показывайте и удаляйте. Замерьте время. Будут хоть какие-то данные.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: проектирование пользовательского интерфейса
«
Ответ #7 :
Июль 15, 2014, 20:24 »
Цитата: qt_newer от Июль 15, 2014, 16:53
Т.е. ответ, например, использовать QtStackedWidget, сделать несколько страниц с кнопками внизу и менять у них надписи, слоты по ходу дела (только как пример!).
Ну а почему бы и нет? Чем это "сложнее" расхристанных "форм" (какое мерзкое слово) у которых одинаковые эл-ты? Или просто так - ругать глупость начальства = хороший тон?
Записан
Bepec
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #8 :
Июль 15, 2014, 20:56 »
Чем гибче система, тем больше в ней ошибок и тем страшнее последствия каждой
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: проектирование пользовательского интерфейса
«
Ответ #9 :
Июль 15, 2014, 21:05 »
Цитата: Bepec от Июль 15, 2014, 20:56
Чем гибче система, тем больше в ней ошибок и тем страшнее последствия каждой
Ерунда.
Записан
_OLEGator_
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #10 :
Июль 15, 2014, 21:07 »
Цитата: Bepec от Июль 15, 2014, 20:56
Чем гибче система, тем больше в ней ошибок и тем страшнее последствия каждой
Полный бред.
Записан
Bepec
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #11 :
Июль 15, 2014, 21:08 »
А чем вы руководствовались когда писали 2 последние реплики? Если без грамотной архитектуры гибкая система, то это капец. А тут как раз такой случай.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: проектирование пользовательского интерфейса
«
Ответ #12 :
Июль 15, 2014, 21:10 »
Цитата: Bepec от Июль 15, 2014, 21:08
А чем вы руководствовались когда писали 2 последние реплики? Если без грамотной архитектуры гибкая система, то это капец. А тут как раз такой случай.
Без грамотной архитектуры гибкой системы не получиться, ну никак.
Записан
_OLEGator_
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #13 :
Июль 15, 2014, 21:14 »
Цитата: Bepec от Июль 15, 2014, 21:08
А чем вы руководствовались когда писали 2 последние реплики? Если без грамотной архитектуры гибкая система, то это капец. А тут как раз такой случай.
А чем ты руководствуешься, когда пишешь такие утверждения? Эпоха монолитных приложений уже давно прошла, а рукожопие и гибкость - разное.
Записан
Bepec
Гость
Re: проектирование пользовательского интерфейса
«
Ответ #14 :
Июль 15, 2014, 21:42 »
Цитировать
Чем гибче система, тем больше в ней ошибок и тем страшнее последствия каждой
Вот моё утверждение
Скажите ещё, что в монолитном больше ошибок будет
Чем гибче, тем больше сценариев. Чем больше сценариев - больше обработчиков. Больше обработчиков - больше ошибок. По статистике
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...