0

我尝试QStringListModel使用以下代码为 a 设置自定义数据,但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();
4

1 回答 1

0

您使用标准的 QStringListModel。它没有 Qt::UserRole。您必须自己实现 Qt::UserRole 的 setData 行为。为此,您必须继承 QStringListModel 并覆盖 setData() 和 data()。

于 2013-08-15T19:52:44.563 回答