还真是巧啊,前段时间我刚好就在折腾这个东西呢~~
其实你说那3个问题都是同一个问题
在treewidget中实现右键菜单:从QTreeWidget继承一个类,在新类中重写contextMenuEvent(QContextMenuEvent *event)函数;你在创建每一个QTreewidgetItem的时候setData一下,比如你这里只分toplevelitem和childeitem,那么你可以这样:
1.创建toplevelitem
QVariant var(0);
pTopItem->setData(0, Qt::UserRole, var);
2.创建childItem
QVariant var1(1);
pChildItem->setData(0, Qt::UserRole, var1);
然后在contextMenuEvent函数中用QVariant QTreeWidgetItem::data ( int column, int role )取出进行判断就可以了。