模型/视图将数据和显示分开进行处理,中间通过代理做桥梁。
如果想往QCombox中添加一些子项,你会怎么做呢?除了常用的addItem方法,下面介绍通过模型/视图的方式添加,逐步理解模型/视图的使用方法。
1.首先添加一个类,继承自QAbstractListModel
class ComboxModel : public QAbstractListModel
{
Q_OBJECT
public:
ComboxModel(QStringList &_list,QObject *parent = 0);
~ComboxModel();
//QAbstractListModel 中3个必须重新实现的虚函数
int rowCount(const QModelIndex & parent = QModelIndex()) const;
int columnCount(const QModelIndex & parent = QModelIndex()) const;
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
private:
QStringList list;
};
2.方法实现
//将QStringList中的字符串显示在combox中。
ComboxModel::ComboxModel(QStringList &_list,QObject *parent) :list(_list),QAbstractListModel(parent)
{
}
ComboxModel::~ComboxModel()
{
}
//体现model的行数,这里就是list的个数
int ComboxModel::rowCo