PyQT5 : Menu contextuel avec QTableWidget()

Messages postés
3214
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
25 mai 2019
- - Dernière réponse : little boy62
Messages postés
3214
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
25 mai 2019
- 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

Messages postés
44
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
15 mai 2019
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
Messages postés
3214
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
25 mai 2019
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