Re[5]: Реализации независимых элементов GUI под винду
От: SaZ  
Дата: 12.03.21 13:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, SaZ, Вы писали:


SaZ>>А вы пример можете привести?

ЕМ>Да хоть нечто подобное таблице параметров, что в правой части диалога настроек MS VS. Где у каждого параметра есть тип, умолчание, возможные варианты значений и т.п.

Там в соседнем треде кинули проперти грид — так в деталях же захлебнуться можно на фоне любого внятного фреймворка. Особенно если что-то надо кастомизировать.
Жду от вас реальный пример контрола с кодом, который будет удовлетворять вашим требованиям.

SaZ>>Делать полностью абстрактные контролы очень тяжело — нужно очень много писать руками, в том числе логику.

ЕМ>Что такое "полностью абстрактные"? Хочется, как в WinAPI, создать такой элемент, последовательными вызовами методов набить его данными, задать какие-то особенности поведения, и активировать, задав при этом объект callback-класса (или просто функцию), через которые он будет сообщать о событиях и просить уточнений.

Так очень много вещей нужно в голове/коде держать. И нормально спроектировать один контрол с минимальными возможностями кастомизации не сильно проще, чем написать свой фреймворк.
Вы писали свои контролы? Я писал свои виджеты под Qt, с поддержкой стилей, кастомизации через QSS и редактора. Тот ещё гемморой получался. А наитивно это делать — ещё сложнее.

SaZ>>Фреймворки как раз призваны упростить разработку контролов. Сравните, к примеру, сложность реализации пользовательской логики для дерева из Qt (QTreeView) и винапишного.

ЕМ>Там разница не в том, что Qt — фреймворк, а в том, что соответствующий элемент Qt уже набит логикой (как нужной мне, так и напрочь не нужной), а винапишный — примитивная заготовка.

А зачем вам использовать сразу всю возможную логику? Используйте только то, что вам нужно
Набить список текста на Qt — пару строк кода. На чистом винапи 20-30.
Сделать древовидный выпадающий список с чекбоксами на Qt — строк 20-30. На чистом винапи вы и в 300 не уложитесь.

-----
На то они и фреймворки, что позволяют значительно упростить рутину, которая повторяется от контрола к контролу. Как только вы захотите в реальном проекте реализовать более 2-х контролов — вы рано или поздно изобретёте свой фреймворк, ну или наймёте отдел индусов для поддержки.

Опишите исходную решаемую задачу и вашу мотивацию к наитивным контролам, тогда можно будет более предметно разговаривать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.