• 6469阅读
  • 5回复

[共享]QTreeWidget 里不同地方响应右键事件(空白处,item) [复制链接]

上一主题 下一主题
离线wanghouting
 

只看楼主 倒序阅读 楼主  发表于: 2016-01-22


如图,为了实现右击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~~如有不足之处~~欢迎指正

去年我借给你的5块钱啥时候还?
离线nigoole

只看该作者 1楼 发表于: 2016-01-22
你这个还叫初学,~~让我等情何以堪~~
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线蚂蚁power

只看该作者 2楼 发表于: 2016-01-25
顶一下
离线XChinux

只看该作者 3楼 发表于: 2016-01-25
判断位置就可以了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线stlcours

只看该作者 4楼 发表于: 2016-01-26
界面真美,可以考虑开源吗?
离线foxgod

只看该作者 5楼 发表于: 2021-01-25
回 XChinux 的帖子
XChinux:判断位置就可以了。 (2016-01-25 20:56) 

你好,我在customContextMenuRequested 这个信号出发的槽函数里面写了 ui->treeWidget->itemAt(itempoint)  ,可是这个返回值一直是空是怎么回事。
快速回复
限100 字节
 
上一个 下一个