Python Tkinter: Impossible de créer un nouveau bouton
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Python Tkinter: Impossible de créer un nouveau bouton



  1. #1
    adrienvincent

    Python Tkinter: Impossible de créer un nouveau bouton


    ------

    Bonjour,
    Je cherche à faire un petit logiciel dans le cadre d'un projet d'informatique. Mon logiciel est sensé afficher le spectre d'un fichier audio et quelques autres petites choses. Pour ce faire j'avais pensé à faire une interface graphique (ce qui est même demandé par le sujet). Tout marche (pour le moment j'ai le titre + un bouton pour sélectionner un fichier ainsi que un espace affichant le chemin du dit fichier. Cependant, lorsque j'essaie de rajouter un bouton lié à une fonction pour afficher le spectre du fichier précédemment choisi, le script refuse tout simplement de s'exécuter (la fenêtre ne s'affiche même pas) et je ne vois pas comment faire. Python me revoie un message d'erreur de syntaxe sous le .grid du dit bouton, or tout ce que j'ai écrit me semble juste (jusqu'à preuve du contraire).

    Je vous envoie donc une copie de mon script en espérant que l'on puisse me venir en aide.

    Merci d'avance et Bonne soirée
    Ps: le code ne commence réellement que à partir de la configuration de la fenêtre principale

    Code:
    from tkinter import *
    from tkinter import filedialog
    import urllib
    import scipy.io.wavfile
    import pydub
    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib as mpl
    
    nom=0
    
    #ouvrir un fichier
    def GetFiles():
        filename = filedialog.askopenfilename()
        selected_folder.config(text=str(filename))
        nom=filename
        return(filename)
    
    #afficher le spectre audio
    def show_spectrum(filename):
        rate,audData=scipy.io.wavfile.read(str(filename))
    
        print(rate)
        print(audData)
    
        #wav number of channels mono/stereo
        audData.shape[1]
        #if stereo grab both channels
        channel1=audData[:,0] #left
        channel2=audData[:,1] #right
    
        #create a time variable in seconds
        time = np.arange(0, float(audData.shape[0]), 1) / rate
    
        #plot amplitude (or loudness) over time
        mpl.rcParams['agg.path.chunksize'] = 10000
    
        plt.plot(time, channel1, linewidth=0.01, alpha=1, color='#0000CC')
        plt.xlabel('Time (s)')
        plt.ylabel('Amplitude')
        plt.grid()
    
        plt.show()
    
    #affichage de la fenêtre + personalisation
    root=Tk()
    root.title("Mega Extreme Raptor FFT Turbo PLUS 2000")
    root.geometry("1280x720")
    #root.minsize(1280, 720)
    #root.maxsize(1280, 720)
    root.config(background='#F96714')
    
    
    #texte
    label_title=Label(root, text='Mega Extreme Raptor FFT Turbo PLUS 2000', font=('full pack 2025', 30), bg='#F96714', fg='#2A4B7C')
    label_title.grid(row=0, column=1, sticky='w')
    
    
    #boutton sélection de fichiers
    folder_s=Button(root, text='Import a folder (.wav only):', font=("Arial", 12), bg='grey', fg='black', command=GetFiles)
    folder_s.grid(row=1, column=0, sticky='w')
    
    #fenêtre montrant le fichier choisi
    selected_folder=Label(root, text='--selected folder--', font=("Arial", 12), bg='white', fg='black')
    selected_folder.grid(row=1, column=1, sticky='w')
    
    
    
    #Boutton pour afficher le spectre
    #spectre=Button(root, text='Audio spectrum', font=("Arial", 30), bg='grey', fg='black', command=show_spectrum(str(nom))
    #spectre.grid(row=2, column=0, sticky=N)
    
    root.mainloop()

    -----

  2. #2
    pm42

    Re : Python Tkinter: Impossible de créer un nouveau bouton

    Citation Envoyé par adrienvincent Voir le message
    Python me revoie un message d'erreur de syntaxe sous le .grid du dit bouton
    Donner le message d'erreur permet de t'aider plus efficacement.
    Parce que ça marche globalement chez moi par exemple même s'il y aurait à dire sur ton utilisation des variables globales dans les fonctions.

  3. #3
    adrienvincent

    Re : Python Tkinter: Impossible de créer un nouveau bouton

    Voici le message d'erreur qui 'est affiché:

    File "<module1>", line 71
    spectre.grid(row=2, column=0, sticky='n')
    ^
    SyntaxError: invalid syntax

    Pour les variables globales et locales, j'ai corrigés quelques trucs, en effet certaines lignes étaient inutiles.

  4. #4
    pm42

    Re : Python Tkinter: Impossible de créer un nouveau bouton

    Tu n'as pas fermé toutes les parenthèses sur la ligne juste au dessus :

    Code:
    spectre=Button(root, text='Audio spectrum', font=("Arial", 30), bg='grey', fg='black', command=show_spectrum(str(nom))
    Je reconnais que là dessus, le message d'erreur python est un peu une blague.

  5. A voir en vidéo sur Futura
  6. #5
    adrienvincent

    Re : Python Tkinter: Impossible de créer un nouveau bouton

    Ohlala merci beaucoup et surtout de votre patience, moi qui pensait avoir tout bien écrit ��...
    Ça marche à présent bonne soirée

Discussions similaires

  1. Python Tkinter ProgressBar
    Par invite3221e8dd dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 08/12/2019, 19h40
  2. Python : Tkinter : tag et dictionnaire
    Par invitec03183ff dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 08/01/2019, 15h08
  3. Problème - Fenêtre Tkinter python
    Par invite145565e3 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 03/05/2017, 11h15
  4. Aide TKINTER Python
    Par invite678e76a2 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 22/04/2016, 21h42
  5. python, tkinter, gestion d'événements
    Par Jack dans le forum Programmation et langages, Algorithmique
    Réponses: 11
    Dernier message: 29/10/2013, 12h34