2014-03-27 74 views
1

如何在tableView的两侧添加颜色?Qt tableView - 添加颜色

enter image description here

+0

使用'QStyledItemDelegate ' –

+0

@Dmitry Sazonov我如何捕捉tableView的属性? Qt :: DisplayRole?请用代码解释,对我来说更好理解。 – user628298

回答

1

你应该继承QHeaderView并实现自己的类,如:

#include<QtWidgets> 
class HeaderView: public QHeaderView 
{ 
public: 
    HeaderView():QHeaderView(Qt::Vertical) 
    {} 

    void paintSection(QPainter * painter, const QRect & rect, int logicalIndex) const 
    { 
    QBrush brush; 

    if(logicalIndex == 0) 
     brush.setColor(QColor(Qt::red)); 
    else 
     brush.setColor(QColor(Qt::blue)); 

    painter->fillRect(rect, brush); 
    QPen pen(Qt::white); 
    painter->setPen(pen);  
    painter->drawText(rect,QString("Row %1").arg(logicalIndex));  
    } 
}; 

下一组HeaderView的实例作为QTableView中的垂直标题:

HeaderView vView;  
tableview.setVerticalHeader(&vView); 
+0

谢谢,现在它工作。必须为'tableview.setVerticalHeader(&hView);'替换'tableview.setHorizo​​ntalHeader(&hView);' – user628298