QT的项视图类有:QListWidget,QTableWidget,QTreeWidget
QT的视图有:QListView,QTableView,QTreeView
QT的模型有:QSqlTableModel,QStringListModel,QDirModel..等
头文件:
#ifndef XLISTWIDGET_H#define XLISTWIDGET_H#include <QtGui/QDialog>#include<QMap>class QDialogButtonBox;class QIcon;class QListWidget;class XListWidget : public QDialog{Q_OBJECTpublic:XListWidget(const QMap<int,QString>&symbolMap,QWidget *parent = 0);~XListWidget();private:QIcon iconForSymbol(const QString &symbolName);QListWidget *listWidget;QDialogButtonBox *buttonBox;};#endif // XLISTWIDGET_H
cpp文件:
#include<QDebug>#include <QtGui>#include "xlistwidget.h"XListWidget::XListWidget(const QMap<int,QString>&symbolMap,QWidget *parent): QDialog(parent){listWidget = new QListWidget;listWidget->setIconSize(QSize(60,60));QMapIterator<int,QString>i(symbolMap);while(i.hasNext()){i.next();QListWidgetItem *item = new QListWidgetItem(i.value(),listWidget);item->setIcon(iconForSymbol(i.value()));item->setData(Qt::UserRole,i.key());}QVBoxLayout *mainLayout = new QVBoxLayout;mainLayout->addWidget(listWidget);setLayout(mainLayout);}XListWidget::~XListWidget(){}QIcon XListWidget::iconForSymbol(const QString &symbolName){QString fileName = ":/images/" + symbolName.toLower();qDebug()<<"fileName"<<fileName;fileName.replace(' ', '-');return QIcon(fileName);}
main.cpp
#include <QtGui/QApplication>#include "xlistwidget.h"int main(int argc, char *argv[]){QApplication a(argc, argv);QMap<int, QString> symbolMap;symbolMap.insert(132, QObject::tr("Data.png"));symbolMap.insert(134, QObject::tr("Decision.png"));symbolMap.insert(137, QObject::tr("Document.png"));symbolMap.insert(138, QObject::tr("Manual Input.png"));symbolMap.insert(139, QObject::tr("Manual Operation.png"));symbolMap.insert(141, QObject::tr("On Page Reference.png"));symbolMap.insert(142, QObject::tr("Predefined Process.png"));symbolMap.insert(145, QObject::tr("Preparation.png"));symbolMap.insert(150, QObject::tr("Printer.png"));symbolMap.insert(152, QObject::tr("Process.png"));XListWidget w(symbolMap);w.show();return a.exec();}

浙公网安备 33010602011771号