Я хочу создать приложение для потоковой диаграммы в Qt, чтобы немного попрактиковаться в моделировании приложений с графическим интерфейсом.Все, что у него есть - это перетаскиваемые прямоугольники и круги, которые можно соединить прямыми линиями.
Поскольку это мое первое приложение с графическим интерфейсом, я не уверен, как обычно проектируют такой проект.Вот мои два дизайна.
1) Создайте группу классов моделей (Box, Circle, Line и т. Д.) И связанных видов (например, BoxView, CircleView и т. Д.).Объекты модели имеют такие свойства, как цвет, x, y, ширина, высота.Классы представлений являются подклассами элементов Qt UI.Кроме того, существуют контроллеры, такие как BoxMoveController, которые получают события мыши из пользовательского интерфейса и соответствующим образом обновляют представление блока и модель блока.Или, может быть, лучше, если представление в виде окна получает событие, обновляет себя, а затем передает событие в контроллер для обновления модели?Теперь я создаю логику приложения для логики потоковой диаграммы, которая работает в модели (например, соединяет линии с блоками).Пользовательский интерфейс соответствующим образом обновляется моделью, уведомляя объекты представления о том, что происходит обновление модели.
2) Забудьте о моделях и создайте приложение, ориентированное на вид.Создайте группу классов (Box, Circle, Line и т. Д.), Которые подклассируют элементы пользовательского интерфейса Qt.Затем создайте логику приложения для потоковой диаграммы поверх этих классов.
Что лучше?Что бы вы сделали по-другому?