wanghouting |
2016-01-22 14:54 |
QTreeWidget 里不同地方响应右键事件(空白处,item)
[attachment=14741] 如图,为了实现右击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~~如有不足之处~~欢迎指正
|
|