Я создал реализацию класса QAbstractListModel
в Qt Jambi 4.4 и обнаружил, что при использовании модели с QListView
ничего не отображается, однако при использовании модели с QTableView
данные отображаются правильно .
Ниже моя реализация QAbstractListModel
:
public class FooListModel extends QAbstractListModel
{
private List<Foo> _data = new Vector<Foo>();
public FooListModel(List<Foo> data)
{
if (data == null)
{
return;
}
for (Foo foo : data)
{
_data.add(Foo);
}
reset();
}
public Object data(QModelIndex index, int role)
{
if (index.row() < 0 || index.row() >= _data.size())
{
return new QVariant();
}
Foo foo = _data.get(index.row());
if (foo == null)
{
return new QVariant();
}
return foo;
}
public int rowCount(QModelIndex parent)
{
return _data.size();
}
}
А вот как я устанавливаю модель:
Foo foo = new Foo();
foo.setName("Foo!");
List<Foo> data = new Vector<Foo>();
data.add(foo);
FooListModel fooListModel = new FooListModel(data);
ui.fooListView.setModel(fooListModel);
ui.fooTableView.setModel(fooListModel);
Кто-нибудь может увидеть, что я делаю не так? Я хотел бы думать, что это была проблема с моей реализацией, потому что, как все говорят, выбор не сломан!