Quantcast
Channel: QtWebEngine
Viewing all articles
Browse latest Browse all 13965

A small test case for setting background of HeadData doesn't work, BUG ?

$
0
0
TestBackground.pro QT       += core gui   greaterThan(QT_MAJOR_VERSION, 4): QT += widgets   TARGET = TestBackground TEMPLATE = app   SOURCES += main.cpp\         mainwindow.cpp \     tablemodel.cpp   HEADERS  += mainwindow.h \     tablemodel.h tablemodel.h #ifndef TABLEMODEL_H #define TABLEMODEL_H #include <QAbstractTableModel>   class TableModel : public QAbstractTableModel {     Q_OBJECT public:     TableModel(QObject *parent = 0);     int rowCount(const QModelIndex &parent) const;     int columnCount(const QModelIndex &parent) const;     QVariant data(const QModelIndex &index, int role) const;     QVariant headerData(int section, Qt::Orientation orientation, int role) const; private: }; #endif tablemodel.cpp #include "tablemodel.h" #include <QColor> #include <QBrush> #include <qDebug> #include <QString>   TableModel::TableModel(QObject *parent)     : QAbstractTableModel(parent) { }   int TableModel::rowCount(const QModelIndex &parent) const {     Q_UNUSED(parent);     return 2; }   int TableModel::columnCount(const QModelIndex &parent) const {     Q_UNUSED(parent);     return 2; }   QVariant TableModel::data(const QModelIndex &index, int role) const {     if (!index.isValid())         return QVariant();       if (role == Qt::DisplayRole)     {         if (index.column() == 0)             return QString("zhang san");         else if (index.column() == 1)             return QString("china");     }     if(role == Qt::BackgroundRole)     {         if (index.column() == 0)             return QVariant(QColor(Qt::green));         else if (index.column() == 1)             return QVariant(QColor(Qt::green));     }       return QVariant(); }   QVariant TableModel::headerData(int section, Qt::Orientation orientation, int role) const {     if (role == Qt::DisplayRole)     {         if (orientation == Qt::Horizontal) {             switch (section) {                 case 0:                     return tr("Name");                 case 1:                     return tr("Address");                   default:                     return QVariant();             }         }     }     if(role == Qt::ForegroundRole)     {         if (orientation == Qt::Horizontal)         {             switch (section)             {                 case 0:                     return QVariant(QColor(Qt::blue));                 case 1:                     return QVariant(QColor(Qt::blue));                 default:                     return QAbstractTableModel::headerData(section,orientation,role);             }         }     }     if(role ==Qt::BackgroundRole)     {         //if(orientation == Qt::Vertical)         if (orientation == Qt::Horizontal)         {             switch (section)             {                 case 0:                     qDebug() << "case 0";                     return  QBrush(QColor(Qt::red));                 case 1:                     qDebug() << "case 1";                     return  QVariant(QColor(Qt::red));                 default:                     qDebug() << "default";                     return QAbstractTableModel::headerData(section,orientation,role);             }         }     }       return QVariant(); } mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTableView> #include <tablemodel.h> class MainWindow : public QMainWindow {     Q_OBJECT     public:     explicit MainWindow(QWidget *parent = 0);     ~MainWindow();     private:     TableModel * table; }; #endif mainwindow.cpp #include "mainwindow.h"   MainWindow::MainWindow(QWidget *parent) :     QMainWindow(parent) {     table = new TableModel(this);     QTableView *tableView = new QTableView;     tableView->setModel(table);     setCentralWidget(tableView); } MainWindow::~MainWindow() { } main.cpp #include "mainwindow.h" #include <QApplication>   int main(int argc, char *argv[]) {     QApplication a(argc, argv);     MainWindow w;     w.show();         return a.exec(); } Setting background of HeadData for QTableView is doesn’t work. Is it a bug for Qt ? My original post is here: http://qt-project.org/forums/viewthread/28840/#129491

Viewing all articles
Browse latest Browse all 13965

Trending Articles