Qt table 右击菜单判断位置

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();
}

本文作者:vanxkr

本文链接:http://www.vanxkr.com/2021/4/Qt-table-contextMenuEvent

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

c++ 类的静态模板函数 不写到 头文件 的方法
0 条评论
已登录,注销 取消