Как использовать Модель для QCombobox

Я хочу использовать QCombobox в качестве Combobox из Swing в Java . Поэтому мне нужно использовать модель для удержания моего объекта. Как я могу держать свой объект в QCombobox. (Я думаю, что я должен хранить данные в Model, потому что QCombobox был разработан в соответствии с паттерном MVC ...) Любая помощь будет оценена.

8
задан ymoreau 7 December 2017 в 15:06
поделиться

3 ответа

В зависимости от того, что вы хотите отобразить с помощью QComboBox, вам нужно будет написать собственную модель, унаследовав QAbstractListModel, повторно реализуя rowCount() и data().

Затем используйте QComboBox::setModel(), чтобы QComboBox отобразил его.

Если вы хотите просто отображать строки, вы можете использовать QStringListModel, поставляемую с Qt.

9
ответ дан 5 December 2019 в 11:21
поделиться

Qt использует упрощенную версию MVC, в которой есть только части модели/представления.

Вы можете использовать один из предоставленных подклассов QAbstractItemModel, если вам не нужно какое-либо специализированное поведение, какое из них использовать, зависит от того, храните ли вы свои данные в файловой системе или в структуре данных в памяти. .

Вам следует прочитать весь раздел о программировании модели/представления в документации Qt.

2
ответ дан 5 December 2019 в 11:21
поделиться

Вы можете добавить модель в свой QCombobox с помощью функции setModel . Вы можете использовать предопределенную модель или создать свою собственную, наследуя от QAbstractItemModel.

Ваша модель будет содержать ваш объект, чтобы отделить отображение от данных.

4
ответ дан 5 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: