个人技术分享

给Table安装过滤器,添加右键删除选中行

bool FitPlaneDialog::eventFilter(QObject* watched, QEvent* event) {
	//对my_table_widget添加右键菜单
	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);
}