QTreeWidget right click menu

First,config QTreeWidget to response(emit signal) right mouse click:

treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);

Second,connect the signal with your slot "MainWindow::prepareMenu":

connect(treeWidget,&QTreeWidget::customContextMenuRequested,this,&MainWindow::prepareMenu);

Third,create context menu in the slot:

void MainWindow::prepareMenu( const QPoint & pos )
{
QTreeWidget *tree = treeWid;

QTreeWidgetItem *nd = tree->itemAt( pos );

qDebug()<<pos<<nd->text(0);


QAction *newAct = new QAction(QIcon(":/Resource/warning32.ico"), tr("&New"), this);
newAct->setStatusTip(tr("new sth"));
connect(newAct, SIGNAL(triggered()), this, SLOT(newDev()));


QMenu menu(this);
menu.addAction(newAct);

QPoint pt(pos);
menu.exec( tree->mapToGlobal(pos) );
}

First you should set the context menu policy to CustomContextMenu:

treeView->setContextMenuPolicy(Qt::CustomContextMenu);

Then you can connect to the QWidget::customContextMenuRequested(const QPoint&) signal and show your context menu.