2010-07-24 13 views
3

Très bien, voici mon dillema. Je fais une application simple avec Qt Creator qui utilise Webkit. Je pensais que Qt Creator aurait un moyen facile d'éditer le menu contextuel avec l'éditeur de signaux et de slots, mais cela s'est avéré faux. Je sais que webkit a des classes qui ont à voir avec le menu contextuel, mais je ne sais pas comment y accéder via Qt Creator. J'ai besoin d'éditer la partie "Ouvrir le lien dans la nouvelle fenêtre" du menu contextuel afin qu'il ouvre mon application dans une nouvelle fenêtre quand un lien est suivi, mais comme je l'ai dit précédemment, je ne peux pas penser à un moyen de l'éditer sans compiler un QtWebKit modifié depuis la source, ce qui serait pénible.Comment modifier le menu contextuel de QtWebKit dans Qt Creator?

Toutes les réponses seraient appréciées, et si cela fait une différence, je suis principalement un développeur C# /. NET, et jsut a commencé à travailler avec Qt et C++.

Répondre

2

L'événement QWidget :: contextMenuEvent (QContextMenuEvent *) est une fonction "protégée virtuelle".
Vous pouvez hériter de QWebView, puis remplacer "contextMenuEvent".

+0

Merci, je pense que je l'ai maintenant. –

0

Si ce dont vous avez besoin est simplement de gérer l'action "Ouvrir dans une nouvelle fenêtre", je suggère de réimplémenter QWebView :: createWindow protégé virtuel. Réimplémenter contextMenuEvent à partir de zéro pourrait être compliqué sans utiliser createStandardContextMenu, qui dirige "Ouvrir dans une nouvelle fenêtre" à createWindow.