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*)));//右键事件
前一篇:转:使用.qrc资源文件
后一篇:【QT】获取屏幕大小