Как использовать модель для 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.

Другие вопросы по тегам