注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙漠里de烟雨

原创分享,禁止转载

 
 
 

日志

 
 

Qt---设置QTableView的QHeaderView的某section(列)隐藏  

2014-01-08 09:26:54|  分类: QT5.x与QML |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
示意图:
Qt---设置QTableView的QHeaderView的某section(列)隐藏 - 漠雨 - 沙漠里de烟雨
 
Qt---设置QTableView的QHeaderView的某section(列)隐藏 - 漠雨 - 沙漠里de烟雨
 

在myListview()中:
m_InformationPositionModel = new InformationPositionModel(infoItem);
this->setModel(m_InformationPositionModel);
this->setMouseTracking(true);
this->setFocusPolicy(Qt::NoFocus);
this->setGridStyle(Qt::NoPen);
  this->setSelectionBehavior(QAbstractItemView::SelectItems);

this->setSelectionMode(QAbstractItemView::SingleSelection);
QHeaderView* headerView = new InformationPositionSubHeaderview(Qt::Horizontal,this); ////=====///////
headerView->setSectionsClickable(true);
this->setHorizontalHeader(headerView);
this->horizontalHeader()->setStretchLastSection(true);
this->verticalHeader()->setVisible(false);
this->setEditTriggers(QAbstractItemView::NoEditTriggers);
this->setContextMenuPolicy(Qt::CustomContextMenu);
  
this->resizeColumnsToContents();
this->resizeRowsToContents();

其:

InformationPositionSubHeaderview::InformationPositionSubHeaderview(Qt::Orientation orientation,QWidget* parent) : QHeaderView(orientation,parent)
{
this->setSectionsClickable(false);
this->m_IsHided = false;
}

InformationPositionSubHeaderview::~InformationPositionSubHeaderview()
{

}

void InformationPositionSubHeaderview::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const
{
    painter->save();
QHeaderView::paintSection(painter, rect, logicalIndex); 
painter->restore();
if(logicalIndex==1 && m_IsHided==true)
{
QRect leftRect = QRect(rect.x(),rect.y(),HIDEDCOLORBTNWIDTH,rect.height());
painter->setBrush(QBrush(Qt::blue));
painter->drawRect(leftRect);
}
}

void InformationPositionSubHeaderview::mousePressEvent(QMouseEvent * event)
{
if(event->button()==Qt::LeftButton) 
{
int index = logicalIndexAt(event->pos());
if(index==0 && m_IsHided==false)
{
setSectionHidden(index,true);
m_IsHided = true;
}
else if(index==1 && m_IsHided==true && event->pos().x()<=HIDEDCOLORBTNWIDTH)
{
setSectionHidden(index-1,false);
m_IsHided = false;
}
}
QHeaderView::mousePressEvent(event);
}
  评论这张
 
阅读(2114)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017