summaryrefslogtreecommitdiffstats
path: root/test.py
blob: fc85fff7bc1e70e191fbda3e5d1b8aa9d3bf8c64 (plain)
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel
from PySide6.QtCore import QSettings, QFile

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        layout = QVBoxLayout()

        self.lbl_path = QLabel()
        self.update_path_label()

        btn_browse = QPushButton('Parcourir')
        btn_browse.clicked.connect(self.browse_file)

        layout.addWidget(self.lbl_path)
        layout.addWidget(btn_browse)

        self.setLayout(layout)
        self.setWindowTitle('Lecture de chemin depuis un fichier de configuration')

    def browse_file(self):
        settings_file = QFile('settings.ini')
        settings = QSettings(settings_file, QSettings.IniFormat)
        filepath, _ = QFileDialog.getOpenFileName(self, "Sélectionner un fichier de configuration", "", "Fichiers de configuration (*.ini)")
        if filepath:
            settings.setValue('Config/path', filepath)
            self.update_path_label()

    def update_path_label(self):
        settings_file = QFile('settings.ini')
        settings = QSettings(settings_file, QSettings.IniFormat)
        filepath = settings.value('Config/path')
        if filepath:
            self.lbl_path.setText(f'Chemin actuel : {filepath}')
        else:
            self.lbl_path.setText('Aucun chemin défini dans le fichier de configuration')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())


####################
# autre solution
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QFileDialog
import configparser

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        layout = QVBoxLayout()

        self.lbl_path = QLabel()
        self.update_path_label()

        btn_browse = QPushButton('Parcourir')
        btn_browse.clicked.connect(self.browse_file)

        layout.addWidget(self.lbl_path)
        layout.addWidget(btn_browse)

        self.setLayout(layout)
        self.setWindowTitle('Lecture de chemin depuis un fichier de configuration')

    def browse_file(self):
        options = QFileDialog.Options()
        file_dialog = QFileDialog()
        file_dialog.setFileMode(QFileDialog.ExistingFile)
        filepath, _ = file_dialog.getOpenFileName(self, "Sélectionner un fichier de configuration", "", "Fichiers de configuration (*.ini)", options=options)
        if filepath:
            config = configparser.ConfigParser()
            config.read(filepath)
            if 'Config' in config and 'path' in config['Config']:
                path = config['Config']['path']
                self.lbl_path.setText(f'Chemin actuel : {path}')

    def update_path_label(self):
        # Lecture du chemin à partir du fichier de configuration
        config = configparser.ConfigParser()
        config.read('config.ini')  # Assurez-vous d'avoir un fichier config.ini avec la section [Config] et une clé 'path'
        if 'Config' in config and 'path' in config['Config']:
            path = config['Config']['path']
            self.lbl_path.setText(f'Chemin actuel : {path}')
        else:
            self.lbl_path.setText('Aucun chemin défini dans le fichier de configuration')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())