2011-08-24 4 views
1

J'ai un problème avec le menu contextuel personnalisé sur QGLWidget et QTreeView. J'ai QTreeview et QGLWidget ajouté à un widget commun avec séparateur. J'ouvre le menu contextuel par le code suivant. Actions est une liste de QActions.Problème avec le menu contextuel sur QGLWidget

Lorsque vous appuyez sur la souris sur le QGLWidget, le curseur de la souris change si certaines conditions sont remplies. Après avoir ouvert le menu contextuel sur un clic droit, si vous appuyez sur la souris sur l'un des éléments du menu, tout va bien. Si la souris n'appuie pas sur l'un des éléments du menu contextuel, le menu contextuel se ferme et le problème commence. Le problème est que le curseur de la souris ne change pas même si toutes les conditions sont remplies lorsqu'une pression de la souris se produit. Je ne suis pas sûr si le QWidget a perdu le focus ici. Donc, j'ai essayé de mettre l'accent dans l'événement de presse de la souris. Mais de pas beaucoup d'aide. Toutes les suggestions pour surmonter ce problème.

Merci!

+0

Avez-vous essayé de réimplémenter QGLWidget :: contextMenuEvent (QContextMenuEvent * event), pour voir si cela fait une différence? C'est comme ça que je crée des menus contextuels. – cmannett85

+0

Merci. Oui, j'ai essayé ceci pour créer le menu contextuel dans l'événement de menu contextuel mais ne s'est pas bien passé. – krishna

Répondre

0

Je suppose que le problème peut être que l'événement n'est pas transmis au widget parent. Ajoutez simplement l'instruction suivante dans mouseReleaseEvent()

QGLWidget :: mouseReleaseEvent (event);