gpt4 book ai didi

java - Qt 占碑 : QAbstractListModel not displaying in QListView

转载 作者:行者123 更新时间:2023-11-30 05:17:34 28 4
gpt4 key购买 nike

我已经在 Qt Jambi 4.4 中创建了 QAbstractListModel 类的实现,并且发现使用带有 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);

有人能看出我做错了什么吗?我想这是我的实现的问题,因为正如大家所说,选择并没有被破坏!

最佳答案

我在 Jambi 方面没有经验,但是您不应该从方法 data() 返回 QVariant 而不是返回 Foo 吗?我不清楚 View 如何知道如何将 Foo 转换为字符串以进行显示。

此外,我是否有机会向您出售更易于使用的 QStandardModel 和 QStandardModelItem,而不是艰难地推出完全自定义的模型?如果您只想拥有一个 View ,则可以完全避免整个 MVC 模式,而只使用非常非常易于使用的 QListWidget。

关于java - Qt 占碑 : QAbstractListModel not displaying in QListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/126759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com