天天看点

QTableWidget添加右键菜单的详细过程

包含头文件:

#include <QMenu>
#include <QAction>
           

在类定义中增加一个QMenu对象指针:

QMenu *table_widget_menu;
           

 在父窗体构造函数中允许QTableWidget接收QWidget::customContextMenuRequested()信号。

ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
           

 生成所需要的右键菜单。

table_widget_menu = new QMenu(ui->tableWidget);
QAction *action = new QAction("Insert", this);
connect(action, SIGNAL(triggered()), this, SLOT(slotActionInsert()));
table_widget_menu->addAction(action);
action = new QAction("Remove", this);
connect(action, SIGNAL(triggered()), this, SLOT(slotActionRemove()));
table_widget_menu->addAction(action);
           

 让QTableWidget控件的QWidget::customContextMenuRequested()信号关联上槽函数,在槽函数中调用显示右键菜单。

void UserForm::on_tableWidget_customContextMenuRequested(const QPoint &pos)
{
    table_widget_menu->exec(QCursor::pos());
}
           

继续阅读