重载QTreeView的mousePressEvent方法处理QStandardItem的check消息
来源:互联网 发布:企业资质软件下载 编辑:程序博客网 时间:2024/05/16 13:43
class CQTreeView : public QTreeView
{
Q_OBJECT
public:
CQTreeView();
public:
void mousePressEvent(QMouseEvent *event);
void mark_subitem(QModelIndex index);
void unmark_subitem(QModelIndex index);
};
CQTreeView::CQTreeView(){}void CQTreeView::mousePressEvent(QMouseEvent *event){QModelIndex indexClicked = indexAt(event->pos());if( indexClicked.isValid() ){
QRect vrect = visualRect(indexClicked);int itemIndentation = vrect.x() - visualRect(rootIndex()).x();QRect rect = QRect(header()->sectionViewportPosition(0) + itemIndentation, vrect.y(),style()->pixelMetric(QStyle::PM_IndicatorWidth), vrect.height());if( rect.contains(event->pos()) ){
QStandardItem *item = ((QStandardItemModel*)model())->itemFromIndex(indexClicked);if( item->checkState()==Qt::Unchecked ){
mark_subitem(indexClicked);
}
else{
unmark_subitem(indexClicked);
}
QTreeView::mousePressEvent(event);return;}
else{
QTreeView::mousePressEvent(event);}
}
}void CQTreeView::mark_subitem(QModelIndex index){qDebug()<< "mark item, set checked";//model()->rowCount(index);}void CQTreeView::unmark_subitem(QModelIndex index){qDebug()<< "mark item, set uncheck";}
- 重载QTreeView的mousePressEvent方法处理QStandardItem的check消息
- 改变QTreeView项高的方法
- C#的消息处理方法
- C#的消息处理方法
- C#的消息处理方法
- C#的消息处理方法
- C#的消息处理方法
- 控件QtreeView的实现
- QStandardItem中setData()函数无效情况的说明
- 去除/隐藏QStandardItem已显示的复选框(CheckBox)
- MFC两种重载控件消息响应的方法
- QTreeView的Item添加QProgressBar
- QTreeView的使用总结1
- onvif的soap消息之check
- Cocoa处理消息的方法:Delegate
- 处理WM_ERASEBKGND消息的实用方法
- Cocoa处理消息的方法:Delegate
- C#处理AMF消息机制的方法
- C#简单水晶报表打印步骤
- 虚拟机图形化使用
- 坚持真的就是胜利。现在有个小问题,求组!!!
- jqGrid 开源jquery表格控件
- Column 'id' in where clause is ambiguous
- 重载QTreeView的mousePressEvent方法处理QStandardItem的check消息
- Android 面试题
- C#:Distribution of the .NET Framework
- translating a document
- 动态规划解决问题的一般思路
- 高仿优酷Android客户端图片左右滑动(自动切换)
- 关于request和response的使用
- 指向函数的指针
- android----面试基础概括总结