Bonjour,

N'ayant pas trouvé de thread approprié, je me suis mis sur celui-ci.

Voilà mon problème: je code sous PyQt5 et je dois faire en sorte que lorsqu'un utilisateur utilise un QopenFileDialog, le chemin du dernier fichier utilisé soit sauvegardé.

Le problème est qu'après quelques semaines de recherches, je ne suis arrivé à rien de concluant (je suis débutant).

J'ai donc fait en sorte de ne pas utilser le 'dialog natif', car il semblerait que ce soit pour ça qu'on ne puisse pas réussir à enregistrer le chemin...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 csv_file_list = QtWidgets.QFileDialog.getOpenFileName(self, 'Open File', '', 'Csv Files (*.csv)', None,  QtWidgets.QFileDialog.DontUseNativeDialog)
J'ai essayé diverses choses que je vous met ici :

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
        csv_file_list = QtWidgets.QFileDialog.getSaveFileName(self, 'Dialog Title', '/path/to/default/directory', selectedFilters='*.txt')
        if csv_file_list:
            print (csv_file_list)
 
        theInputDir = ''
 
        if os.path.exists(configFile):
            config = ConfigParser.ConfigParser()
            config.read(configFile)
            if config.has_sections('dirs'):
                if config.has_option('dirs',  'inputdir'):
                    theInputDir = config.get('dirs',  'inputdir')
        csv_file_list = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', '', '*.csv')
        if csv_file_list:
            self.lineEditInputFile.setText(csv_file_list)
            inputDirName = os.path.dirname(csv_file_list.ascii())
            self.textEditInfo.append('Inpu Dir : ' + inputDirName)
            #Write the directory to the config file for the next time
            config = ConfigParser.ConfigParser()
            config.read(configFile)
            if not config.has_sections('dirs'):
                config.add_sections('dirs')
            config.set('dirs',  'inpudir',  inputDirName)
            fpConf = open(configFile,  'w') #configFile is global
            config.write(fpConf)
            fpConf.close()
 
        ##
        save = QtWidgets.QFileDialog.saveState(self)
        QtWidgets.QFileDialog.resaveState(save)
        if self.QFileDialog.restoreState(dir_path) == true:
            csv_file_list = 
 
        ##
        settings = QSettings()
        self.recentFiles = settings.value("RecentFiles").toStringList()
        settings.value("Recent files").toStringList
        size = settings.value("MainWindow/Size",  QSize(800,  600)).toSize()
        self.resize(size)
        self.restoreState(settings.value("MainWindow/State").toByteArray())
        self.setWindowTitle("Mobility Data Display - " + dir_path) 
        self.updateFileMenu()
        QTimer.SingleShot(0,  self.loadInitialFile)
 
        ##
        settings = QSettings(dir_path,  "docs")   
        settings.value("toto")
 
        ##Non native Dialog first attempt
        csv_file_list = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', '', '*.csv'),None,  QtWidgets.QFileDialog.DontUseNativeDialog)
 
 
        ##Non native Dialog second attempt
        dialog = QtWidgets.QFileDialog(self)
        dialog.setWindowTitle('Open File')
        dialog.setNameFilter('*.csv')
        dialog.setFileMode(QtWidgets.QFileDialog.ExistingFile)
        if dialog.exec_() == QtWidgets.QDialog.Accepted:
            csv_file_list = dialog.selectedFiles()[0]
Ca fait beaucoup mais je n'ai pas chômé !

Je pensais aussi stocker le chemin du dernier fichier utilisé dans un .txt et le réutiliser derrière mais je ne sais tout simplement pas comment m'y prendre ...


Si vous avez une solution ou juste un début je suis preneur !!

Merci par avance !