diff options
Diffstat (limited to 'test.py')
-rw-r--r-- | test.py | 103 |
1 files changed, 103 insertions, 0 deletions
@@ -0,0 +1,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()) |