Я хочу использовать QCombobox
в качестве Combobox
из Swing
в Java
. Поэтому мне нужно использовать модель
для удержания моего объекта. Как я могу держать свой объект в QCombobox. (Я думаю, что я должен хранить данные в Model, потому что QCombobox
был разработан в соответствии с паттерном MVC ...)
Любая помощь будет оценена.
В зависимости от того, что вы хотите отобразить с помощью QComboBox
, вам нужно будет написать собственную модель, унаследовав QAbstractListModel
, повторно реализуя rowCount()
и data()
.
Затем используйте QComboBox::setModel()
, чтобы QComboBox
отобразил его.
Если вы хотите просто отображать строки, вы можете использовать QStringListModel
, поставляемую с Qt.
Qt использует упрощенную версию MVC, в которой есть только части модели/представления.
Вы можете использовать один из предоставленных подклассов QAbstractItemModel, если вам не нужно какое-либо специализированное поведение, какое из них использовать, зависит от того, храните ли вы свои данные в файловой системе или в структуре данных в памяти. .
Вам следует прочитать весь раздел о программировании модели/представления в документации Qt.
Вы можете добавить модель в свой QCombobox
с помощью функции setModel
. Вы можете использовать предопределенную модель или создать свою собственную, наследуя от QAbstractItemModel
.
Ваша модель будет содержать ваш объект, чтобы отделить отображение от данных.