У меня есть 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: когда я выделю ячейку и нажимаю клавишу, я получаю сообщение « KeyPress event! » Однако сообщение « MouseButtonPress! » появляется только при нажатии на очень тонкую границу, окружающую всю таблицу.