Я создал очень простой пример QListView
с пользовательским QAbstractListModel
. Отображается QListView
, но он пуст.QListView с QAbstractListModel показывает пустой список
Что я делаю неправильно?
Код:
#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();
}
Спасибо!
Исправление к предыдущему коду, чтобы установить родитель модели на QListView
:
DataModel d(lv);
Но возникает вопрос, где находится модель/представление независимости, если модель должна иметь ссылку на вид?
Что делать, если я хочу использовать эту модель в двух разных точках зрения?
Done, но он все еще не показывает пункт :( –
Важно, чтобы данные() возвращает недействительный QVariant() Check. если вы не забыли «вернуть QVariant()» в конце. –
Он возвращает QVariant(). Я решил это, хотя я все еще думаю, что что-то не так. Посмотрите на издание на исходный пост. –