我设法创建了一个上下文菜单,在右键单击QTreeWidget树的每个项目后激活该菜单:
contextMenu = new QMenu(ui->treeWidget);
ui->treeWidget->setContextMenuPolicy(Qt::ActionsContextMenu);
addElement = new QAction("Add Element",contextMenu);
deleteElement = new QAction("Delete Element",contextMenu);
ui->treeWidget->addAction(addElement);
ui->treeWidget->addAction(deleteElement);
connect(addElement, SIGNAL(triggered()), this, SLOT(addElementHandler()));
connect(deleteElement, SIGNAL(triggered()), this, SLOT(deleteElementHandler()));
我的目的是在树中的另一个下添加新项目,或者使用此上下文菜单右键单击特定项目来删除它们。
但是我不确定如何从处理程序中实现右键单击的确切树的哪个项目。
你能告诉我一个线索吗?提前致谢!
答案 0 :(得分:2)
如果您不打算更改TreeWidget选择行为或自己设置当前项 - 您可以只使用本机行为。请求树的上下文菜单选择执行右键单击的项目,即 currentItem 。因此,在addElementHandler插槽中, currentItem()将为您提供所需的确切项目。