Im trying to get my first QML TableView
to work in Qt 5.2 (since we are stuck on that
version right now at work) using a QAbstractTableModel
on the backend.
My main issue is that for some reason the itemDelegate
is never firing so
I never see anything in the View except the outline of the TableView
.
I have also verified that theData_
is filled with 2 dimensional numbers
in every row/column in the constructor and I do an emit layoutChanged()
as well as an emit dataChanged()
in the constructor.
I realize I have no error checking for an invalid QModelIndex
in the data()
call
at this time.
I also did not implement index()
at all.
Also is there any need to use a ROLE
here?
The data Im displaying is a single integer (as a QString
) per cell, nothing more at this time.
Thanks for your help
qml:
TableView {
width: 600
height: 600
model: myModel
visible: true
itemDelegate: Rectangle {
color: "lightgray"
width: 100
height: 20
Text {
text: styleData.value
color: "black"
}
}
}
relevant code from subclassed QAbstractTableModel:
int MyModel::rowCount(const QModelIndex&) const
{
return 10;
}
int MyModel::columnCount(const QModelIndex&) const
{
return 3;
}
QVariant MyModel::data(const QModelIndex& index, int role) const
{
const int row = index.row();
const int col = index.column();
return QString("%1").arg(this->theData_[col][row]);
}