PyQT5 : Menu contextuel avec QTableWidget()

little boy62 3085 Messages postés lundi 11 novembre 2013Date d'inscription 16 octobre 2018 Dernière intervention - 19 avril 2018 à 11:34 - Dernière réponse : little boy62 3085 Messages postés lundi 11 novembre 2013Date d'inscription 16 octobre 2018 Dernière intervention
- 29 mai 2018 à 23:06
Bonjour.

Je débute en python, plus précisément en interface graphique.

En résumé, j'essaye de reproduire mes scripts AutoIt en python.

En mode console, aucun souci.


J'essaye juste de créer une "listview" avec menu contextuel.
j'arrive, sauf pour ce fameux menu... ^^

Voici un code banal :

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtWidgets import *

monApp=QApplication(sys.argv)
w=QTableWidget()
w.resize(600,600)

w.setWindowTitle("Titre de fenêtre")

w.setRowCount(2)

w.setColumnCount(4)
w.setItem(0,0, QTableWidgetItem("A"))
w.setItem(0,1, QTableWidgetItem("B"))
w.setItem(0,2, QTableWidgetItem("C"))
w.setItem(0,3, QTableWidgetItem("D"))
w.setItem(1,0, QTableWidgetItem("1"))
w.setItem(1,1, QTableWidgetItem("2"))
w.setItem(1,2, QTableWidgetItem("3"))
w.setItem(1,3, QTableWidgetItem("4"))



w.move(10, 100)
w.show()

sys.exit(monApp.exec_())




J'avais trouvé cela : https://www.developpez.net/forums/d1471044/autres-langages/python-zope/gui/pyqt/qtablewidget-menu-contextuels/
Mais rien à avoir. Je me disais qu'il fallait creuser cette piste, sans succès. :/


j'ai créé un script banal justement, pour me focaliser uniquement sur l'essentiel : le menu contextuel.


J'arrive à remplir ce tableau... mais ensuite, nada.


Pouvez-vous m'aiguiller ?


Merci aux personnes qui me permettraient d'en apprendre d'avantage :)

++
Afficher la suite 

Votre réponse

2 réponses

lugdanum 22 Messages postés vendredi 13 mai 2005Date d'inscription 13 septembre 2018 Dernière intervention - 29 avril 2018 à 22:39
0
Merci
Hello

il faut que tu ajoute du style la ou tu créé ta table une ligne du genre :
self.TableWigdget.customContextMenuRequested.connect(self.TonMenu)


Et ensuite dans ton TonMenu, quelque chose de ce style :

def TonMenu(self, position):
    
        menu = QMenu()
            menu.addAction(self.tr("Coucou"))
        
        menu.exec_(self.TableWidget.viewport().mapToGlobal(position))
Commenter la réponse de lugdanum
little boy62 3085 Messages postés lundi 11 novembre 2013Date d'inscription 16 octobre 2018 Dernière intervention - 29 mai 2018 à 23:06
0
Merci
Bonsoir.


Désolé du temps de réponse, étant en formation, j'ai peu de temps.

Juste pour vous dire que j'utilise tkinter, plus simple pour mon petit cerveau.


Merci en tout cas.

++
Commenter la réponse de little boy62

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.