给Table安装过滤器,添加右键删除选中行
bool FitPlaneDialog::eventFilter(QObject* watched, QEvent* event) {
if (watched == ui->my_table_widget) {
if (event->type() == QEvent::ContextMenu) {
QMenu menu(ui->my_table_widget);
QAction* delete_action = menu.addAction(tr("删除"));
QAction* selected_action = menu.exec(QCursor::pos());
if (selected_action == delete_action) {
QModelIndexList selected_rows = ui->my_table_widget->selectionModel()->selectedRows();
for (int i = selected_rows.size() - 1; i >= 0; i--) {
ui->my_table_widget->removeRow(selected_rows.at(i).row());
}
}
}
}
return QDialog::eventFilter(watched, event);
}