PyQT5 Menu Bar ouvrir une nouvelle fenêtre !
Bonjour,
Je souhaite ouvrir une nouvelle fenêtre avec le menu bar avec un développement sous PyQT5 / Qt Designer / et python 3.7.
Ma fenêtre principale main.py
Aux lignes 30-32 j'ai bien utilisé les outils: sender / signal / receiver / slot pour le point de menu "Quitter"
Mais comment faire pour ouvrir la seconde fenêtre avec le point de menu "Nouveau" ?
Je n'ai rien trouvé à ce sujet. Merci beaucoup par avance.
Code:
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 43 44 45 46 47 48 49 50
|
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
from formSecond import Ui_formSecond
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
self.menuFiles = QtWidgets.QMenu(self.menubar)
self.menuFiles.setObjectName("menuFiles")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionNew = QtWidgets.QAction(MainWindow)
self.actionNew.setObjectName("actionNew")
self.actionEnd = QtWidgets.QAction(MainWindow)
self.actionEnd.setObjectName("actionEnd")
self.menuFiles.addAction(self.actionNew)
self.menuFiles.addAction(self.actionEnd)
self.menubar.addAction(self.menuFiles.menuAction())
self.retranslateUi(MainWindow)
self.actionEnd.triggered.connect(MainWindow.close)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.menuFiles.setTitle(_translate("MainWindow", "Fichier"))
self.actionNew.setText(_translate("MainWindow", "Nouveau"))
self.actionEnd.setText(_translate("MainWindow", "Quitter"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_()) |
voici ma seconde fenêtre fromSecond.py
Code:
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 43
|
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_formSecond(object):
def setupUi(self, formSecond):
formSecond.setObjectName("formSecond")
formSecond.resize(661, 378)
self.centralwidget = QtWidgets.QWidget(formSecond)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(180, 150, 282, 37))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(24)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
formSecond.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(formSecond)
self.statusbar.setObjectName("statusbar")
formSecond.setStatusBar(self.statusbar)
self.retranslateUi(formSecond)
QtCore.QMetaObject.connectSlotsByName(formSecond)
def retranslateUi(self, formSecond):
_translate = QtCore.QCoreApplication.translate
formSecond.setWindowTitle(_translate("formSecond", "MainWindow"))
self.label.setText(_translate("formSecond", "Second formulaire"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
formSecond = QtWidgets.QMainWindow()
ui = Ui_formSecond()
ui.setupUi(formSecond)
formSecond.show()
sys.exit(app.exec_()) |