Hello.
I'm new to model view programming but I've successfully implemented a model inherited from QAbstractListModel:
{
Q_OBJECT
public:
explicit PaletteListModel
(QList<QColor> colors,
QObject *parent
);
...
...
...
private:
QList<QColor> m_colors;
};
PaletteListModel
::PaletteListModel(QList<QColor> colors,
QObject *parent
) :{
m_colors = colors;
}
int PaletteListModel
::rowCount(const QModelIndex & ) const {
return m_colors.count();
}
...
...
class PaletteListModel : public QAbstractListModel
{
Q_OBJECT
public:
explicit PaletteListModel(QList<QColor> colors, QObject *parent);
int rowCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
...
...
...
private:
QList<QColor> m_colors;
};
PaletteListModel::PaletteListModel(QList<QColor> colors, QObject *parent) :
QAbstractListModel(parent)
{
m_colors = colors;
}
int PaletteListModel::rowCount(const QModelIndex & ) const
{
return m_colors.count();
}
...
...
To copy to clipboard, switch view to plain text mode
So I can pass a list which can have a dynamic length to the constructor which will be stored in a private field. With this I can determine the row count...
But how can I pass and store the data for a table model? I guess it has to be some kind of nested list. But I can't figure out how exactly to do this:
{
Q_OBJECT
public:
explicit PaletteTableModel
(??????? colors,
QObject *parent
);
private:
???????? m_colors;
};
PaletteTableModel
::PaletteTableModel(??????? colors,
QObject *parent
) :{
m_colors = colors;
}
int PaletteTableModel
::rowCount(const QModelIndex & ) const {
return ?????
}
int PaletteTableModel
::columnCount(const QModelIndex &) const {
return ?????
}
...
...
...
class PaletteTableModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit PaletteTableModel(??????? colors, QObject *parent);
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex())) const;
private:
???????? m_colors;
};
PaletteTableModel::PaletteTableModel(??????? colors, QObject *parent) :
QAbstractTableModel(parent)
{
m_colors = colors;
}
int PaletteTableModel::rowCount(const QModelIndex & ) const
{
return ?????
}
int PaletteTableModel::columnCount(const QModelIndex &) const
{
return ?????
}
...
...
...
To copy to clipboard, switch view to plain text mode
How do I have to implement this?
Bookmarks