在QComboBox中显示QAbstractTableModel

时间:2013-12-04 23:32:02

标签: c++ qt qcombobox qabstractitemmodel qabstracttablemodel

晚上好StackOverflow。这是我的第一个问题,所以我希望它不会太愚蠢。

我有一个模型子类QAbstractTableModel,用于存储继承QObject的项目。我想在QComboBox中显示项目列表,该列表会在模型更改时更新。

该模型实现了所需的四个函数rowCount()columnCount()data()headerData()

我的问题是:使用QAbstractItemModel时如何在QComboBox中使用QComboBox::setModel()? (换句话说,列数必须等于1,例如?)。

使用QComboBox时,如何为QAbstractModel中的每个项目选择显示的文字? 我在objectName()中找到了QObject方法,但我对它的使用方式并不确定。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以继承QAbstractTableModel,提供返回1的columnCount()。

然后,当你要覆盖

QVariant QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole)

你必须对role做出反应。如果是DisplayRole,您将返回从模型对象中获取的文本