void MainWindow::contextMenuEvent(QContextMenuEvent * event) {
QPoint point = _ui->tableView_result->mapFromGlobal(QCursor::pos()); // 鼠标表格相对位置
int headWidth = _ui->tableView_result->verticalHeader()->width(); // 头高
int headHeight = _ui->tableView_result->horizontalHeader()->height(); // 头宽
int width = _ui->tableView_result->width() - headWidth; // table宽
int height = _ui->tableView_result->height() - headHeight; // table高
int x = point.x() - headWidth; // 内容相对位置x
int y = point.y() - headHeight; // 内容相对位置y
QModelIndex index = _ui->tableView_result->indexAt(QPoint(x, y)); // 内容相对位置的index
if (index.isValid() && x > 0 && y > 0 && x < width && y < height) { // 判定 相对位置有效 且 在内容范围内
_context_menu_row = index.row(); // 获得行
_context_menu_col = index.column(); // 获得列
}
event->accept();
}
Qt table 右击菜单判断位置
可以请我喝杯咖啡吗QAQ~
本文作者:vanxkr
本文链接:http://www.vanxkr.com/2021/4/Qt-table-contextMenuEvent
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!
0 条评论