Переделываю пример из 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???
ПринтСкрин получаемого приложения: