Russian Qt Forum

Qt => Вопросы новичков => Тема начата: helga1917 от Август 05, 2013, 14:02



Название: QAbstractItemModel не отображает иконку в таблице
Отправлено: helga1917 от Август 05, 2013, 14:02
Переделываю пример из Examples and Demos: Item Views: Basic Sort/Filter Model , но в первую колонку хочу вставить иконки. Компилируется, но отображается только время и текст, поле с иконкой пустое.

alarmer.h:
Код:
#ifndef ALARMER_H
#define ALARMER_H

#include <QWidget>
class QAbstractItemModel;
class QPixmap;
class QTreeView;

class Window: public QWidget
{
Q_OBJECT
public:
   Window();
    void setSourceModel (QAbstractItemModel *model);
private:
QTreeView *sourceView;
};
#endif

alarmer.cpp:
Код:
#include <QtGui>
#include "alarmer.h"
Window::Window()
{
sourceView = new QTreeView;
sourceView->setAlternatingRowColors(true);

QHBoxLayout *sourceLayout = new QHBoxLayout;
sourceLayout->addWidget(sourceView);
setLayout(sourceLayout);
}
void Window::setSourceModel (QAbstractItemModel *model)
{
sourceView->setModel(model);
}

main.cpp:
Код:
#include <QtGui>
#include "alarmer.h"

void addMail (QAbstractItemModel *model, const QPixmap Pix, const QDateTime &date, const QString &info)
{
model->insertRow(0);
model->setData(model->index(0,0), Pix);
model->setData(model->index(0,1), date);
model->setData(model->index(0, 2), info);
}

QAbstractItemModel *createItemModel (QObject *parent)
{
QStandartItemModel *model = new QStandartItemModel (0, 3, parent);
model->setHeaderData(0, Qt::Horizontal, QObject::tr("Subject"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Sender"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Date"));

addMail (model, QPixmap ("C:/alarmer/1.png"), "Petra Schmidt", QDateTime(QDate(2007, 01, 05),QTime(12, 01)));
return model;
}
int main (int argc, char *argv[])
{QApplication app(argc, argv);
Window window;
window.setSourseModel (createMailModel (&window));
window.show();
return app.exec();
}

Как отобразить иконку в поле Subject???
ПринтСкрин получаемого приложения:


Название: Re: QAbstractItemModel не отображает иконку в таблице
Отправлено: GreatSnake от Август 05, 2013, 14:42
Укажи роль Qt::DecorationRole для
Код
C++ (Qt)
model->setData(model->index(0,0), Pix);


Название: Re: QAbstractItemModel не отображает иконку в таблице
Отправлено: helga1917 от Август 05, 2013, 15:06
!!!Спасибо