-
Clic droit et QAction
Bonjour à vous tous et à toutes :).
Je suis en train de créer un petit navigateur web, sans trop d'ambition, mais bon ^^.
J'en suis actuellement à implémenter les favoris, seulement voilà... les favoris, il faut pouvoir les supprimer, ou en ajouter etc...
Seulement voilà, je ne comprends pas comment je peux faire un clic droit dessus, d'après la doc, il n'y a pas LE SIGNAL des QWidgets permettant de gèrer le cas ou l'on fait un clic droit dessus, et ça m'énèrve (a).
Merci :)
Avez vous une idée?
-
Bonjour,
Tu dois sous-classer les widgets en question et réimplémenter mousePressEvent() pour le clic droit (regarde la doc de QMouseEvent).
Selon ce que tu veux faire, le contextMenuEvent() s'y prête peut-être mieux... Du coup je vois une autre façon, pour avoir un signal : setContextMenuPolicy(Qt::CustomContextMenu) et ça active le signal customContextMenuRequested(const QPoint& pos).
-
Salut.
Je te remercie déjà de ta réponse.
Oui, je connais le signal customContextMenuRequested. Mais seulement, le problème, c'est qu'il n'est disponible que avec des QWidgets ou classe dérivées de cette dernières, hors QAction est dérivée de de QObject, qui, elle ne contient pas le signal précédemment cité.
De plus, la fonction "permettant" d'activé le signal n'existe donc pas sous la classe QObject... ni dans QAction.
Cependant, dans la classe QObject, j'ai vu cette fonction http://qt-project.org/doc/qt-4.8/qob...allEventFilter .
L'idée serait donc d'utilisé "l'événement", de créer nous même le menu à l'endroit du curseur, et de l'afficher, seulement voilà, je ne saurais pas récupérer sur quel QAction j'ai cliqué, et c'est là que ça pose problème...
Enfin bon je fairais mes propres tests demain ^^.
Merci à vous ^^
-
Seuls les widgets, les objets graphiques, peuvent avoir des notions de clic, clic gauche/droit, position du clic... Une action n'a rien à voir, ce n'est rien de concret visuellement et interactivement, ça peut juste être déclenché... (les actions sont liées à un menu, QMenu, qui lui est graphique par contre).
-
Salut.
Dans ce cas, tu me conseillerais d'utilisé un QMenu, puis de détecter quelle action j'aurais survolé grâce au Signal Hovered()?
AMHA, cela me semble une bonne idée tout de même en fait, surtout que je vois comment faire en fait ^^, même si j'ai récemment eu un problème avec ce signal...
Merci à toi en tout cas, je te dis quoi demain ^^.