PyQT5 : Menu contextuel avec QTableWidget()

Signaler
Messages postés
3312
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
6 février 2020
-
little boy62
Messages postés
3312
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
6 février 2020
-
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 :)

++

2 réponses

Messages postés
82
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
7 décembre 2019

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))
Messages postés
3312
Date d'inscription
lundi 11 novembre 2013
Statut
Membre
Dernière intervention
6 février 2020

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.

++