我想在QCombobox
中使用Combobox
作为Swing
的{{1}}。所以我需要使用Java
来保存我的对象。我如何在QCombobox中保存我的对象。 (我认为我应该在模型中保存数据,因为Model
是根据MVC模式设计的......)
任何帮助将不胜感激。
答案 0 :(得分:9)
根据您希望使用QComboBox
显示的内容,您需要编写自己的模型,继承QAbstractListModel
,重新实现rowCount()
和data()
。
然后,使用QComboBox::setModel()
使QComboBox
显示它。
如果您只想显示字符串,可以使用Qt提供的QStringListModel
。
答案 1 :(得分:3)
您可以使用setModel
功能向QCombobox
添加模型。您可以使用预定义模型,也可以通过继承QAbstractItemModel
来创建自己的模型。
您的模型将包含您的对象以将显示与数据分开。
答案 2 :(得分:2)
Qt使用仅具有模型/视图部分的简化版MVC。
如果您不需要任何特殊行为,可以使用所提供的QAbstractItemModel子类之一,使用哪种行为取决于您是将数据保存在文件系统中还是将数据结构保存在内存中。 / p>
您应该阅读Qt文档中model/view programming的整个部分。