QMessageBox/QFileDialog- crash inexpliqués
Bonjour,
Je me lance dans la programmation d'interface avec pyQt et je rencontre un souci avec un code qui ne fonctionne pas.
Voilà une version simplifiée qui reproduit le problème
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 51 52 53 54 55 56 57 58 59 60 61 62
| import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget
from PyQt5.QtCore import QSize
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QFileDialog
class HelloWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(640, 480))
self.setWindowTitle("Hello world")
centralWidget = QWidget(self)
self.setCentralWidget(centralWidget)
gridLayout = QGridLayout(self)
centralWidget.setLayout(gridLayout)
title = QLabel("Hello World from PyQt", self)
title.setAlignment(QtCore.Qt.AlignCenter)
gridLayout.addWidget(title, 0, 0)
# menu
exportAct = QAction('&Select fichier', self)
exportAct.triggered.connect(self.export)
aproposAct = QAction('&A propos', self)
aproposAct.triggered.connect(self.apropos)
menubar = self.menuBar()
fileMenu = menubar.addMenu('&Fichier')
fileMenu.addAction(exportAct)
fileMenu.addAction(aproposAct)
def export(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getSaveFileName(self,"Enregistrer sous ...","","All Files (*);;Text Files (*.txt)", options=options)
#filename=filename+".csv"
if fileName:
print(filename)
#print("Création de " + fileName)
def apropos(self):
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("Test")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
msg.setStandardButtons(QMessageBox.Ok)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWin = HelloWindow()
mainWin.show()
sys.exit( app.exec_() ) |
le programme se lance bien, par contre :
- si je lance le menu "A propos", je plante
- si je lance la sélection d'un chemin, la fenêtre s'ouvre puis une fois le dossier sélectionné et le nom donné, le programme se ferme complètement
Je me suis fortement inspirer d'exemples trouvés sur internet mais là je bloque vraiment, si quelqu'un a une idée de l'erreur, je le remercie