Je dois afficher un menu contextuel chaque fois qu'un onglet est cliqué et qu'il doit réagir à cet onglet spécifique. Est-il possible de le faire sans le sous-classer?Menu contextuel de l'onglet QTabWidget
Répondre
façon simple, mais peut-être pas exactement ce dont vous avez besoin:
- Connectez au signal « currentChanged » de votre QTabWidget
- Dans la fente qui est reliée au signal, créer un QMenu et le remplir au besoin
- Enfin, dans la fente qui est reliée au signal, appelez QMenu :: exec (QCursor :: pos())
Ce obtiendrai une fonction appelée chaque fois que l'onglet est modifiée (non Nece ssairement cliqué) et générer un menu à la position actuelle de la souris.
manière compliquée, qui fait exactement ce que vous décrivez:
- Appel QObject::installEventFilter sur votre QTabWidget, de sorte que tous les événements de votre QTabWidget sont redirigés vers votre propre objet.
- Dans votre propre objet, réimplémentez QObject::customEvent et gérez tous les événements QMouseEvent.
- Remplissez un QMenu si nécessaire et appelez QMenu :: exec à l'emplacement du QMouseEvent que vous gérez.
Je pense que vous devez créer votre propre classe qui hérite de QTabWidget et remplacer la fonction protégée MousePressEvent (QMouseEvent) dans laquelle vous pouvez créer votre menu contextuel sur un clic droit.
-1 puisqu'il a spécifiquement demandé un moyen de réaliser ce qu'il veut sans sous-classer QTabWidget. –
S'il n'est pas familiarisé avec installEventFilter, l'héritage est un moyen plus simple. Mais laissez-le essayer votre première solution en premier. –
- 1. Menu contextuel
- 2. Comment ajouter un menu contextuel à NSOutlineView (ie menu contextuel)
- 3. ToolStripButton avec menu contextuel?
- 4. Menu contextuel MFC "collant"
- 5. PyQt menu contextuel
- 6. Acrobat Menu contextuel
- 7. menu contextuel parent?
- 8. Menu contextuel sous winforms
- 9. Création d'un menu contextuel personnalisé
- 10. Menu contextuel pour SWF chargé
- 11. PyQt et le menu contextuel
- 12. Menu contextuel de la zone de liste
- 13. ajouter un élément de menu au menu contextuel par défaut
- 14. Tests d'automatisation de l'Ui menu contextuel
- 15. Plugin Eclipse - Extension de menu contextuel
- 16. Option de menu contextuel du shell Windows
- 17. Vérifications de l'élément radio du menu contextuel
- 18. TortoiseHg sans commandes de menu contextuel
- 19. Menu contextuel du projet Explorateur de solutions
- 20. Comment vérifier un élément de menu contextuel?
- 21. Création d'un menu contextuel iPhone similaire à Mail App Menu
- 22. Icônes manquantes dans QTabWidget
- 23. C# winforms menu contextuel événements problème
- 24. Désactiver le menu contextuel du système DataGridView
- 25. Menu contextuel des dossiers (Dossier uniquement)
- 26. Paramètres désactivés dans le menu contextuel Flash
- 27. Menu contextuel par défaut pour RichTextEdit?
- 28. Bits contextuels du menu contextuel Internet Explorer
- 29. Barre d'outils DocumentViewer et menu contextuel
- 30. Raccourci du menu contextuel Visual Studio
Votre première solution facile ne fonctionne pas comme il le souhaite. Le menu contextuel ne sera pas affiché si le clic de souris est fait sur l'onglet actuel. La seule solution semble être la deuxième. –