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