enum ContextMenuPolicy { NoContextMenu, DefaultContextMenu, ActionsContextMenu, CustomContextMenu, PreventContextMenu }; 右键菜单共有四种,网上已经有很多这方面的文章,本文只是个人做个笔记 以下代码是CustomContextMenu模式的槽函数 void TextWnd::on_tableView_customContextMenuRequested(QPoint pos) { QMenu *popMenu =new QMenu(this);//定义一个右键弹出菜单 int contextmenu_column = ui->tableView->horizontalHeader()->logicalIndexAt(pos);//计算鼠标的位置对应的列号 int contextmenu_row= ui->tableView->verticalHeader()->logicalIndexAt(pos);//计算鼠标位置对应的行号 if(contextmenu_column==1&&contextmenu_row==-1) { popMenu->addAction(ui->action);//往菜单内添加QAction 该action在前面用设计器定义了 popMenu->exec(QCursor::pos());//弹出右键菜单,菜单位置为光标位置 } if(contextmenu_column=