bonjour,

Je cherche à crée un menubar que j’aurais initialiser dans une autre classe. J’arrive à afficher mon menu correctement. Cependant, je ne peux pas declancher un evenenent lors d’un click par exemple comme puis-je faire pour y arrivée ?

code actuel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import sys
 
from PyQt5.QtWidgets import QHBoxLayout, QAction, QApplication, QMainWindow
 
class MM:
 
    def __init__(self,P):
 
        bar = P.menuBar()
        file = bar.addMenu("File")
        file.addAction("New")
 
        save = QAction("Save",P)
        save.setShortcut("Ctrl+S")
        file.addAction(save)
 
        edit = file.addMenu("Edit")
        edit.addAction("copy")
        edit.addAction("paste")
 
        quit = QAction("Quit",P)
        file.addAction(quit)
        file.triggered.connect(self.processtrigger)
        P.setWindowTitle("menu demo")
 
    def processtrigger(self, q):
        print(q.text()+" is triggered")
 
class menudemo(QMainWindow):
    def __init__(self, parent = None):
        super(menudemo, self).__init__(parent)
        t = MM(self)
 
 
def main():
    app = QApplication(sys.argv)
    ex = menudemo()
    ex.show()
    sys.exit(app.exec_())
 
if __name__ == '__main__':
    main()
le but est d’arrivé a faire ça (voir code ci-dessous) en ayant la menubar dans un class séparé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import sys
 
from PyQt5.QtWidgets import QHBoxLayout, QAction, QApplication, QMainWindow
 
class menudemo(QMainWindow):
    def __init__(self, parent = None):
        super(menudemo, self).__init__(parent)
 
        bar = self.menuBar()
        file = bar.addMenu("File")
        file.addAction("New")
 
        save = QAction("Save",self)
        save.setShortcut("Ctrl+S")
        file.addAction(save)
 
        edit = file.addMenu("Edit")
        edit.addAction("copy")
        edit.addAction("paste")
 
        quit = QAction("Quit",self)
        file.addAction(quit)
        file.triggered.connect(self.processtrigger)
        self.setWindowTitle("menu demo")
 
    def processtrigger(self, q):
        print(q.text()+" is triggered")
 
 
def main():
    app = QApplication(sys.argv)
    ex = menudemo()
    ex.show()
    sys.exit(app.exec_())
 
if __name__ == '__main__':
    main()
merci d’avance de votre aide bonne journée/soirée