QT学习笔记-31.QTABLEVIEW只显示横格,不显示点击虚框的方法

原文链接http://www.cppblog.com/gaimor/archive/2011/11/25/160980.html

重新风格项代理QStyledItemDelegat


class  QLineDelegate :  public  QStyledItemDelegate
{
    Q_OBJECT
public :
    QLineDelegate(QTableView
*  tableView);
protected :
    
void  paint(QPainter *  painter, const  QStyleOptionViewItem &  option, const  QModelIndex &  index)  const ;
private :
    QPen         pen;
    QTableView
*   view;
};

#include  < QPainter >
#include 
" QLineDelegate.h "

QLineDelegate::QLineDelegate(QTableView
*  tableView)
{
    
int  gridHint  =  tableView -> style() -> styleHint(QStyle::SH_Table_GridLineColor,  new  QStyleOptionViewItemV4());
    QColor gridColor 
=  static_cast < QRgb > (gridHint);
    pen 
=  QPen(gridColor,  0 , tableView -> gridStyle());
    view 
=  tableView;
}

void  QLineDelegate::paint(QPainter *  painter,  const  QStyleOptionViewItem &  option, const  QModelIndex &  index) const
{
    QStyleOptionViewItem itemOption(option);
    
if (itemOption.state  &  QStyle::State_HasFocus)
        itemOption.state 
=  itemOption.state  ^  QStyle::State_HasFocus;
    QStyledItemDelegate::paint(painter,itemOption,index);
    QPen oldPen 
=  painter -> pen();
    painter
-> setPen(pen);
    
// painter->drawLine(option.rect.topRight(),option.rect.bottomRight());
    painter -> drawLine(itemOption.rect.bottomLeft(),itemOption.rect.bottomRight());
    painter
-> setPen(oldPen);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值