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
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
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()
merci d’avance de votre aide bonne journée/soirée
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()
Partager