Пытаюсь сделать простейшую таблицу в Qt 4.0.1, мне нужно, чтобы ячейки в виде закрашивались определенным цветом, но они почему-то не закрашиваются
Причем класс QTableWidget устанавливает цвет ячеек тоже через
data/BackgroundColorRole, и использует QTableView и у него ячейки без проблем закрашиваются, а через
QAbstractTableModel/QTableView не получается
class MyTable : public QAbstractTableModel {
public:
MyTable(QObject* parent = 0);
int columnCount(const QModelIndex &parent) const;
int rowCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
};
MyTable::MyTable(QObject* parent)
: QAbstractTableModel(parent) {
}
int MyTable::rowCount(const QModelIndex &parent = QModelIndex()) const {
return 30;
}
int MyTable::columnCount(const QModelIndex &parent = QModelIndex()) const {
return 30;
}
QVariant MyTable::data(const QModelIndex &index, int role) const {
if (role == Qt::DisplayRole)
return QVariant(2); // some data
else if (role == Qt::BackgroundColorRole)
return QVariant(Qt::blue);
return QVariant();
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyTable *model = new MyTable;
QTableView *table = new QTableView;
table->setModel(model);
table->show();
return app.exec();
}