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 : 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
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