ui->tableWidget->setContextMenuPolicy (Qt::CustomContextMenu);
    connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(show_menu(QPoint)));
    void file_manager::show_menu(const QPoint pos)
    {
    //设置菜单选项
    QMenu menu = new QMenu(ui->tableWidget);
    QAction
    pnew = new QAction(“删除当前行”,ui->tableWidget);
    QAction *pnew1 = new QAction(“删除全部”,ui->tableWidget);
    menu->addAction(pnew);
    menu->addAction(pnew1);
    menu->move (cursor ().pos ());

    1. //获得鼠标点击的x,y坐标点<br /> int x = pos.x ();<br /> int y = pos.y ();<br /> QModelIndex index = ui->tableWidget->_indexAt_ (QPoint(x,y));<br /> int row = index.row ();//获得QTableWidget列表点击的行数<br /> Selected_Current_Row=row;<br /> qDebug()<<tr("row==")<<row<<ui->tableWidget->rowCount();<br /> if(ui->tableWidget->rowCount()>=1)<br /> {<br /> menu->show ();<br /> connect (pnew,SIGNAL(triggered()),this,SLOT(del_wtc()));<br /> connect (pnew1,SIGNAL(triggered()),this,SLOT(del_wt()));<br /> }<br /> else<br /> {<br /> QMessageBox::warning(NULL,"警告","没有数据可选择",QMessageBox::Ok);<br /> }<br />}<br />void file_manager::del_wtc()<br />{<br /> if(Selected_Current_Row<0)<br /> {<br /> QMessageBox::warning(NULL,"警告","没有数据可选择",QMessageBox::Ok);<br /> }<br /> else{<br /> QMessageBox message(QMessageBox::NoIcon, QString::fromLocal8Bit("提示"),<br /> tr("是否删除本行数据?"),<br /> QMessageBox::Yes | QMessageBox::No, NULL);<br /> if(message._exec_() == QMessageBox::Yes)<br /> ui->tableWidget->removeRow(Selected_Current_Row);<br /> }<br />}<br />void file_manager::del_wt()<br />{<br /> int i;<br /> QMessageBox message(QMessageBox::NoIcon, QString::fromLocal8Bit("提示"),<br /> tr("是否删除所有数据?"),<br /> QMessageBox::Yes | QMessageBox::No, NULL);<br /> if(message._exec_() == QMessageBox::Yes){
    2. ui->tableWidget->clearContents();<br /> for(i=0;i<=ui->tableWidget->rowCount()+1;i++)<br /> ui->tableWidget->removeRow(0);
    3. }<br />}