加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Test1 QT QTreeView左键和右键事件的区分

(2012-03-15 10:13:01)
标签:

杂谈

分类: 工作

啥也不说 直接上码:

#ifndefHTREEVIEW_H

#defineHTREEVIEW_H
#include<QTreeView>
classHTreeView:publicQTreeView
{
Q_OBJECT
public:
HTreeView();
~HTreeView();
voidmousePressEvent(QMouseEvent*event);
signals:
voidleftClicked(QMouseEvent*event);
voidrightClicked(QMouseEvent*event);
};
#endif//HTREEVIEW_H

 

 

cpp里面:

#include"htreeview.h"

#include<QMouseEvent>
HTreeView::HTreeView():QTreeView()
{
//connect(this,SIGNAL(mousePressEvent(QMouseEvent*)),this,SLOT(leftClicked(QMouseEvent*)));
//connect(this,SIGNAL(mousePressEvent(QMouseEvent*)),this,SLOT(rightClicked(QMouseEvent*)));
}
HTreeView::~HTreeView()
{
}
voidHTreeView::mousePressEvent(QMouseEvent*event)
{
//先调用父类实现选中等功能
QTreeView::mousePressEvent(event);//这里要先调用父类的实现 这样 选中 等很多就已经完成
if(event->button()==Qt::LeftButton)
{
emitthis->leftClicked(event);
}
if(event->button()==Qt::RightButton)
{
emitthis->rightClicked(event);
}
}
调用展示为:
    //展示菜单的事件应该为单机
connect(treeView,SIGNAL(rightClicked(QMouseEvent*)),
this,SLOT(show_contextmenu(QMouseEvent*)));//右键事件

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有