QTreeWidget中添加右键菜单

如图所示,在QTreeWidget中添加右键菜单,并设置菜单的槽函数

使用QMenu和QAction构建菜单

    QMenu *popMenu;
    QAction *delete_node;
    QAction *add_parent_node;
    QAction *add_child_node;

    ui->treeWidget_EditFlow->setContextMenuPolicy(Qt::CustomContextMenu);//右键 不可少否则右键无反应
    connect(ui->treeWidget_EditFlow,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(slots_showrightMenu(QPoint)));

    popMenu = new QMenu(this);
    add_parent_node = new QAction(QStringLiteral("添加测试项目"),this);
    add_parent_node->setStatusTip(QStringLiteral("添加测试项目"));
    add_child_node = new QAction(QStringLiteral("添加指令"),this);
    add_child_node->setStatusTip(QStringLiteral("添加指令"));
    delete_node = new QAction(QStringLiteral("删除项目"),this);
    delete_node->setStatusTip(QStringLiteral("删除项目"));

    connect(add_parent_node,SIGNAL(triggered()),this,SLOT(slots_add_parent_node_Item()));
    connect(add_child_node,SIGNAL(triggered()),this,SLOT(slots_add_child_node_Item()));
    connect(delete_node,SIGNAL(triggered()),this,SLOT(slots_delete_node_Item()));

使用setContextMenuPolicy设置控件在右键时发送customContextMenuRequested信号,设置信号的槽函数slots_showrightMenu。

然后构建菜单,设置菜单项的槽函数。

/**
 * @brief EditCmdWindow::slots_showrightMenu    在列表上右键显示菜单
 * @param point
 */
void EditCmdWindow::slots_showrightMenu(QPoint point)
{
    popMenu->clear();//清除原有菜单
    popMenu->addAction(add_parent_node);
    popMenu->addAction(add_child_node);
    popMenu->addAction(delete_node);
    //QTreeWidgetItem *item = tree->itemAt(point); //可得到右键条目
    popMenu->exec(QCursor::pos());
}

在槽函数中调用popMenu->exec在当前鼠标位置显示右键菜单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值