**QTreeWidget:右键菜单**
ui.treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui.treeWidget, SIGNAL(customContextMenuRequested(const QPoint&)),this, SLOT(onCustomContextMenuRequested(const QPoint&)));
**QTreeWidget:右键菜单**
ui.tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui.tableWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(slot_CustomContextMenuRequested(const QPoint&)));
**QTreeWidget槽函数:**
void DesignProductWidget::onCustomContextMenuRequested(const QPoint& pos)
{
QTreeWidgetItem* item = ui.treeWidget->itemAt(pos);
QModelIndex index = ui.treeWidget->indexAt(pos);
if (item == NULL)
return;
QVariant var = item->text(0);
或者
QVariant var = item->data(0, Qt::DisplayRole);
if (var.toString() == QStringLiteral("状态一"))
{
QMenu menu;
QAction* action = new QAction(QStringLiteral("菜单一"));
QAction* action2 = new QAction(QStringLiteral("菜单一"));
menu.addAction(action);
menu.addAction(action2);
menu.exec(QCursor::pos());
}
}
**QTableWidget槽函数:**
void DesignProductWidget::slot_CustomContextMenuRequested(const QPoint& point)
{
QTableWidgetItem *item = ui.tableWidget->itemAt(point);
或者
QModelIndex index = ui.tableWidget->indexAt(point);
if (item == NULL || index.isValid()== false)
return;
qDebug() << item->text() << "index:"<<index.data().toString();
QMenu menu;
QAction* action = new QAction(QStringLiteral("菜单一"));
QAction* action2 = new QAction(QStringLiteral("菜单二"));
menu.addAction(action);
menu.addAction(action2);
menu.exec(QCursor::pos());
}