QListView mit QAbstractListModel zeigt eine leere Liste an

Ich habe ein sehr einfaches Beispiel dafür erstelltQListView mit einem BrauchQAbstractListModel. DasQListView wird angezeigt, ist aber leer.

Was mache ich falsch?

Code:

#include <QListView>
#include <QAbstractListModel>
#include <QApplication>

class DataModel: public QAbstractListModel
{
public:
    DataModel() : QAbstractListModel() {}
    int rowCount( const QModelIndex & parent = QModelIndex() ) const { return 2; }
    QVariant data( const QModelIndex & index, int role = Qt::DisplayRole ) const
    {
        return "a";
    }
};

int main( int argc, char **argv)
{
    QApplication app(argc, argv, true);
    QListView *lv = new QListView();
    DataModel d;
    lv->setModel( &d ); 
    lv->show();
    app.setMainWidget(lv);
    app.exec();
}

Vielen Dank!

Die Korrektur für den vorherigen Code besteht darin, das übergeordnete Element des Modells auf "" festzulegenQListView:

DataModel d(lv);

Dies wirft jedoch die Frage auf, wo die Modell- / Ansichtsunabhängigkeit liegt, wenn das Modell einen Verweis auf die Ansicht haben muss.

Was ist, wenn ich dieses Modell in zwei verschiedenen Ansichten verwenden möchte?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage