Как мне настроить списки смешанных типов для отображения в Qt? - PullRequest
0 голосов
/ 12 июня 2019

Я планирую написать клиентское приложение на Qt, которое должно полностью заполнять свой пользовательский интерфейс данными, полученными через REST-соединение.Пока мы можем предположить, что данные находятся в формате JSON.Клиент должен ответить на Server-Sent-Events и обновить его состояние и соответственно отобразить.

У меня мало опыта в Qt, за исключением начальных страниц, и я заблудился с того, как начать.Однако я подготовил изображение, похожее на диаграмму классов, чтобы помочь мне объяснить: my class diagram

Я знаю, что это не обычный UML, но я думаю, что он достаточно точный и понятный, чтобы получитьуказать поперек.В традиционном C ++ я бы смоделировал желтые классы и интерфейс.Я бы использовал один статический экземпляр ColourManager для обработки всех соединений и, если захочу, выплюнул список объектов IColour.Итак, основываясь на моем изучении Qt, я понимаю, что Manager будет называться Model в Qt.

Проблема, однако, возникает, когда я принимаю участие в просмотрев учетную запись.Каждый из объектов акварель и Мел будет иметь слот (?) Для прослушивания событий Server-Sent-Events, указывающих изменения в данных и методах для их самостоятельной отправки.

Например, объект акварели может использоватьtoggleDiluted метод (какое совпадение) переключить приватное свойство _isDiluted и затем использовать статический ColourManager для сохранения его нового состояния в сети.

Я не знаю, как лучше отобразить это, поэтому я добавил в класс зеленый компонент qml.В этой части я хотел бы оформить дисплей компонента.На данный момент это может быть очень просто, например, кнопка переключения с названием «Текст для акварели» и цветной прямоугольник для мела.

Я знаю, как все это сделать.Часть, где я теряюсь, это когда это должно быть связано.Я прочитал о моделях в Qt doc и понимаю, что могу использовать Object Model , чтобы повторно использовать компонентную часть qml моих классов, когда у меня есть унифицированные списки из того же типа .

Таким образом, мои вопросы:

  1. Правильно ли мое понимание и моделирование до сих пор?
  2. Это ввсе разумные способы начать все?
  3. Как я могу использовать несколько Delgate для отображения в ListView, чтобы в зависимости от отображаемого объекта выбиралась полезная визуализация?
...