Qt QTableView 鼠标点击事件捕获方法
Qt 的'QTableView' 类中的'mousePressEvent' 函数默认是被禁用的。如果需要在'QTableView' 上捕获鼠标点击事件,可以通过重新实现'QTableView' 的'viewportEvent' 函数来捕获鼠标点击事件。
下面是一个示例代码,展示如何在'QTableView' 中捕获鼠标点击事件:
#include <QtWidgets>
class CustomTableView : public QTableView
{
public:
CustomTableView(QWidget *parent = nullptr) : QTableView(parent) {}
protected:
void viewportEvent(QEvent *event) override
{
if (event->type() == QEvent::MouseButtonPress) {
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
if (mouseEvent->button() == Qt::LeftButton) {
// 处理鼠标左键点击事件
qDebug() << "Left button pressed at" << mouseEvent->pos();
}
}
// 调用父类的viewportEvent函数处理其他事件
QTableView::viewportEvent(event);
}
};
使用'CustomTableView' 类替代原来的'QTableView' 类,然后在'viewportEvent' 函数中处理鼠标点击事件。在示例代码中,如果鼠标左键按下,会在控制台输出鼠标点击的位置。
希望这个解决方案对你有帮助!
原文地址: https://www.cveoy.top/t/topic/qkYH 著作权归作者所有。请勿转载和采集!