Résolue

Interaction entre 2 boutons PySide6

# Fichiers # Interface graphique # PySide

Bonjour,

Petit problème avec PySide6 avec une application graphique très basique:

J'ai un premier bouton qui permet d'ouvrir l'explorateur pour sélectionner un fichier (.xlsx) à traiter. L'idée est donc de récupérer le chemin complet de ce fichier dans une variable.

Le second bouton permet d'exécuter le script sur ce fichier, mais comment récupérer une variable issue de l'évènement d'un bouton dans l'évènement d'un autre bouton? Merci d'avance! :)

self.open_file_button = QPushButton("Select file", centralArea)
self.open_file_button.setGeometry(20, 20, 250, 30)
self.open_file_button.clicked.connect(self.open_file_buttonClicked)

self.process_file_button = QPushButton("Process file", centralArea)
self.process_file_button.setGeometry(20, 70, 250, 30)
self.process_file_button.clicked.connect(self.process_file_buttonClicked)

@Slot()
def open_file_buttonClicked(self):
    open_file_btn: QPushButton = self.sender()
    selectedFile = QFileDialog.getOpenFileName(self, "Select file", "D:\PROGRAMMATION\Excel\openpyxl", "All Files (*);;Excel Files (*.xlsx)")

@Slot()
def process_file_buttonClicked(self):
    process_file_btn: QPushButton = self.sender()

    #Exécution du script
#....


je crois que j'ai trouvé tout seul, en déclarant une variable au niveau de ma classe MainWindow:


self.file_path = ""


et ensuite:


@Slot()
def open_file_buttonClicked(self):
    open_file_btn: QPushButton = self.sender()
    file_name, _ = QFileDialog.getOpenFileName(self, "Select file", "D:\PROGRAMMATION\Excel\openpyxl", "All Files (*);;Excel Files (*.xlsx)")
    if file_name:
        self.file_path = file_name

@Slot()
def process_file_buttonClicked(self):
    process_file_btn: QPushButton = self.sender()
    if self.file_path != "":
        #EXECUTER LE CODE!


Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.