J'ai un QTableView
dans lequel j'affiche un modèle personnalisé. Je voudrais attraper les clics de souris à droite afin que je puisse ouvrir une baisse contextuelle dans le menu déroulant sur les données de table sous-jacente:Qt4: événements de bouton de la souris QTableView non interceptés
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");
}
, je reçois Étrangement tous les événements KeyPress correctement: quand j'ai une cellule en surbrillance, puis appuyez sur une clé, j'obtiens le message "KeyPress event!". Cependant, je reçois seulement le message "MouseButtonPress event!" lorsque je clique sur la très fine bordure entourant la table entière.
Plus de six ans plus tard et cette réponse m'a juste sauvé un tas de temps et d'agacement. Merci! – GuyGizmo
@GuyGizmo Je suis heureux d'entendre ça :) Merci d'être passé;) –