質問

私の実装を QAbstractListModel クラスQt Jambi4.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);

誰でもできるので見えになっているが悪いのでしょうか。と思ってたので問題は私の実装では、皆様には、選択ゃないぞ!

役に立ちましたか?

解決

私の経験がありませんでJambiもなく帰国するQVariantメソッドからデータの()の代わり返しFoo?では明らかでなかのビューがノウハウを変換するFooへの文字列表示されます。

また、ケンブリッジシャー販売することができますので使いやすくQStandardModelとQStandardModelItemの代わりに転が完全にカスタムのハードす。という一見、させないように指定できますのMVCパターンが一体となったものも使いやすいQListWidget.

他のヒント

モデルデータ()の実装には二つの問題で

  • 失敗した場合に異なる値が異なる項目のデータです。現在の の実装を返します同じ値を全ての役割、を一望できる の問題です。

  • QVariantにJambiと同じではない通常のQt.きないときは、
    戻っ null.

よりよい実施することはできない。

public Object data(QModelIndex index, int role) {
    if (index.row() < 0 || index.row() >= _data.size())
        return null;

    if (role != Qt.ItemDataRole.DisplayRole)
        return null;

    return _data.get(index.row());
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top