想在特定的item上边添加右键菜单可以删除该item,请问怎么实现,求高手给点思路,有伪代码就更好了,谢谢!
------解决方案--------------------
contextMenuEvent显示菜单QMenu
currentItem获取当前item
delete 这个item
------解决方案--------------------
我已经说了不要使用事件过滤器。用这个信号判断鼠标位置和当前项目。
在customContextMenuRequested对应的槽函数中添加如下代码——
//itemAt获得当前鼠标位置的Item。
//此处意思是如果当前鼠标位置下有Item才弹出菜单。
//你可以改成某个具体的Item,以及进行其它的判断。
if (ui->treeWidget->itemAt(pos)) {
auto menu = new QMenu( );
menu->addMenu("test111")->addAction("test-1");
menu->addMenu("test222")->addAction("test-2");
//获得全局坐标。
auto globalPos = ui->treeWidget->mapToGlobal(pos);
//偏移X,Y坐标。为了好看。
globalPos += QPoint(30, 50);
//其实使用拖出来的menu也是可以的。
menu->exec(globalPos);
delete menu;
};
书籍?把所有有关的书籍都找来看看。
PDF会找吧?我这里有好多本。零基础学Qt4编程、Qt及Qt Quick开发实战精解、Qt高级编程、C++ GUI Qt4 编程、Qt+Creator快速入门。还有几本不够清晰,也没什么好看的,之前删掉了。
最好还是多查查官方自带文档。
结贴给分吧!