如何使用QCombobox模型

时间:2010-08-27 08:14:20

标签: c++ qt qt4 qcombobox qabstractitemmodel

我想在QCombobox中使用Combobox作为Swing的{​​{1}}。所以我需要使用Java来保存我的对象。我如何在QCombobox中保存我的对象。 (我认为我应该在模型中保存数据,因为Model是根据MVC模式设计的......) 任何帮助将不胜感激。

3 个答案:

答案 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的整个部分。