标题:QTreeWidget 里不同地方响应右键事件(空白处,item)
作者:wanghouting
日期:2016-01-22 14:54
内容:
如图,为了实现右击1、2、3 能弹出不同的菜单(整个都是一个treeWidget),查阅资料,实现如下:
自定义CustomTreeWidget 继成自 QTreeWidget ,重写contextMenuEvent();
void CustomTreeWidget::contextMenuEvent(QContextMenuEvent *event)
{
QTreeWidgetItem *pItem = NULL;
QPoint point = event->pos();//右键点击坐标
pItem = this->itemAt(point);//获取点击的item,没有则为NULL
if(NULL ==pItem ) //点到空白处 (3处)
{
...
}else//点到了item
{
if(pItem->data(0,Qt::UserRole) == "Top")//点到了topLevelItem (1处)
{
...
}
else if(pItem->data(0,Qt::UserRole) == "Sub")//点到了subItem (2处)
{
...
}
}
event->accept();
}
刚开始学QT~~如有不足之处~~欢迎指正
#1 [nigoole 01-22 21:55]
你这个还叫初学,~~让我等情何以堪~~
#2 [蚂蚁power 01-25 11:17]
顶一下
#3 [XChinux 01-25 20:56]
判断位置就可以了。
#4 [stlcours 01-26 00:34]
界面真美,可以考虑开源吗?
#5 回 XChinux 的帖子 [foxgod 01-25 17:12]
XChinux:判断位置就可以了。 (2016-01-25 20:56)
你好,我在customContextMenuRequested 这个信号出发的槽函数里面写了 ui->treeWidget->itemAt(itempoint),可是这个返回值一直是空是怎么回事。