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

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

3 ответов


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

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

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


вы можете добавить модель в свой QCombobox с помощью setModel


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

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

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