Russian Qt Forum
Ноябрь 26, 2024, 11:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAbstractItemModel не отображает иконку в таблице  (Прочитано 2626 раз)
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???
ПринтСкрин получаемого приложения:
« Последнее редактирование: Август 05, 2013, 14:05 от helga1917 » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Август 05, 2013, 14:42 »

Укажи роль Qt::DecorationRole для
Код
C++ (Qt)
model->setData(model->index(0,0), Pix);
Записан

Qt 5.11/4.8.7 (X11/Win)
helga1917
Гость
« Ответ #2 : Август 05, 2013, 15:06 »

!!!Спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.156 секунд. Запросов: 22.