[Qt-interest] How Can I use ListView to show QIcons ?
Kermit Mei
kermit.mei at gmail.com
Wed Jun 24 09:53:00 CEST 2009
Hello, community! I wrote the following codes, but I can see nothing.
I'm sure that all the png file is OK.
#ifndef _LISTMODEL_H
#define _LISTMODEL_H
#include <QAbstractListModel>
#include <QList>
#include <QIcon>
class ListModel : public QAbstractListModel
{
Q_OBJECT
public:
ListModel(QObject *parent = 0);
~ListModel();
int rowCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole)
const;
protected:
QList<QIcon> icons;
};
#endif //_LISTMODEL_H
///////////////////ListMode.cpp////////////////
#include "ListModel.h"
ListModel::ListModel(QObject *parent)
: QAbstractListModel(parent)
{
icons.append(QIcon(":/images/tv.png"));
icons.append(QIcon(":/images/upgrade.png"));
icons.append(QIcon(":/images/vcr.png"));
qDebug("con");
}
ListModel::~ListModel()
{
//Do Nothing Here!
}
int ListModel::rowCount(const QModelIndex &parent) const {
return icons.size();
}
QVariant ListModel::data(const QModelIndex &index, int role) const {
if(index.isValid())
return QVariant(icons.at(index.column()));
else
return QVariant();
}
////////////main.cpp////////////////////////
#include <QApplication>
#include <QListView>
#include "ListModel.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Q_INIT_RESOURCE(iconlist);
QListView listView;
ListModel listModel;
listView.setViewMode(QListView::IconMode);
listView.setModel(&listModel);
listView.show();
return app.exec();
}
Hope any helps.
Thanks.
Kermit
More information about the Qt-interest-old
mailing list