无法为QStringListModel设置自定义数据

时间:2013-08-15 19:31:10

标签: qt model-view

我尝试使用以下代码为QStringListModel设置自定义数据,但setData总是返回false,除非角色为Qt::EditRole

QStringListModel *model = new QStringListModel;
QStringList list ;
list << "str1" << "str2" << "str3";
model->setStringList(list);
QComboBox *box = new QComboBox;
box->setModel(model);
box->show();

qDebug()<<model->index(0);
qDebug()<<model->setData(model->index(0), 1, Qt::UserRole );
qDebug()<<model->data(model->index(0), Qt::UserRole ).toString();

1 个答案:

答案 0 :(得分:0)

您使用标准QStringListModel。它没有Qt :: UserRole。您必须自己为Qt :: UserRole实现setData行为。要做到这一点,你必须继承QStringListModel并覆盖setData()和data()。