我有一个QTableView
中,我展示一个自定义模式。我想赶上鼠标右键点击,这样我可以在基础表数据打开上下文下拉菜单:的Qt4:QTableView中鼠标按钮事件没有抓到
MainWindow::MainWindow()
{
QTableView * itsView = new QTableView;
itsView->installEventFilter(this);
... //Add other widgets and display them all
}
bool MainWindow::eventFilter(QObject * watched, QEvent * event)
{
if(event->type() == QEvent::MouseButtonPress)
printf("MouseButtonPress event!\n");
else if(event->type() == QEvent::KeyPress)
printf("KeyPress event!\n");
}
奇怪的是,我得到的所有的按键事件的正确:当我有一个单元格,然后按压一个关键,我得到了“KeyPress事件!”的消息。不过,我只当我点击周围的整个表非常薄的边框获得了“MouseButtonPress活动!”的消息。
六年多后,这个答案为我节省了一堆时间和烦恼。谢谢! – GuyGizmo 2016-10-13 17:59:23
@GuyGizmo我很高兴听到:)谢谢你停下来;) – 2016-10-17 05:05:04