Pb de récupération de valeur Entry dans fenêtre secondaire
Résolu
LPAUC
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
LPAUC Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
LPAUC Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai un problème qui persiste sur un code concernant la récupération de valeur d'"entry" ou pour un "checkbutton" dans une fenêtre secondaire.
J'ai beau utilisé ?.get() pour récupérer la valeur, mais l'erreur dit que mes variables ? n'existent pas hors elles ont été déclarées dans une fonction juste avant.
J'ai déjà réussi à récupérer des valeurs d'une fonction à une autre mais c'était dans une fenêtre principale (mainloop).
Auriez-vous une idée du problème?
Merci d'avance pour votre aide
J'ai un problème qui persiste sur un code concernant la récupération de valeur d'"entry" ou pour un "checkbutton" dans une fenêtre secondaire.
J'ai beau utilisé ?.get() pour récupérer la valeur, mais l'erreur dit que mes variables ? n'existent pas hors elles ont été déclarées dans une fonction juste avant.
J'ai déjà réussi à récupérer des valeurs d'une fonction à une autre mais c'était dans une fenêtre principale (mainloop).
Auriez-vous une idée du problème?
Merci d'avance pour votre aide
A voir également:
- Pb de récupération de valeur Entry dans fenêtre secondaire
- Convertisseur récupération de texte - Guide
- Fenetre windows - Guide
- Fenetre de navigation privée - Guide
- Fenêtre hors écran windows 11 - Guide
- Impossible de récupérer mon compte gmail - Guide
Dans la première fenêtre veuillez cliquer sur Mag.
Ensuite dans la fenêtre, aller dans File --> Filtrer
from tkinter import filedialog
from tkinter import *
from tkinter import filedialog
import shutil
from tkinter.messagebox import *
from bokeh.plotting import *
from bokeh.io import output_notebook
from bokeh.models import LinearColorMapper, BasicTicker, ColorBar
from ipywidgets import interact
from scipy.interpolate import griddata
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
Topo,Long,Lat,Mag=[],[],[],[]
class mclassGravi:
def __init__(self,window):
self.window = window
self.window.minsize(780,420)
self.window.title("MAG - Sixense Engineering")
self.window.iconbitmap("SixenseLogo.ico")
Label(window,text="fonctionne pas")
class mclassMag:
def __init__(self,window):
self.window = window
self.window.minsize(780,420)
self.window.title("MAG - Sixense Engineering")
self.window.iconbitmap("SixenseLogo.ico")
menubar = Menu(window)
menu1 = Menu(menubar, tearoff=0)
global Data
menu1.add_command(label="Filtrer", command=self.Filt_WD)
menu1.add_command(label="Quitter", command=self.quit1)
menubar.add_cascade(label="File",menu=menu1)
self.window.config(menu=menubar)
def Filt_WD(self):
global vv1,vv2,vv3,vv4
windowFilt_WD=Tk()
self.windowFilt_WD=windowFilt_WD
self.windowFilt_WD.geometry("300x130")
self.windowFilt_WD.title("Filter - Config Window")
self.windowFilt_WD.iconbitmap("SixenseLogo.ico")
vv1,vv2,vv3,vv4=IntVar(),IntVar(),DoubleVar(),DoubleVar()
Check1=Checkbutton(windowFilt_WD, text = "HP", variable = vv1, onvalue = 1, offvalue = 0).grid(row=2, column=1)
self.label=Label(windowFilt_WD,text="f (Hz): ").grid(row=3, column=1)
minF=Entry(windowFilt_WD,textvariable=vv3).grid(row=3, column=2)
Check2=Checkbutton(windowFilt_WD, text = "LP", variable = vv2, onvalue = 1, offvalue = 0).grid(row=5, column=1)
self.label=Label(windowFilt_WD,text="f (Hz): ").grid(row=6, column=1)
maxF=Entry(windowFilt_WD,textvariable=vv4).grid(row=6, column=2)
self.button=Button (windowFilt_WD, text="Apply", command=self.Filt).grid(row=8, column=2)
self.button=Button (windowFilt_WD, text="OK", command=self.quit9).grid(row=8, column=3)
def Filt(self):
Checkvar1,Checkvar2=vv1.get(),vv2.get()
minF,maxF=vv3.get(), vv4.get()
#Filtrage Data
if minF==0 and Checkvar1==1:
showerror("Alerte", "La fréquence minimale ne peut être égale à zéro.\nVeuillez modifier la valeur!!!")
elif minF==0 and maxF==0 and Checkvar1==1 and Checkvar2==1:
showerror("Alerte", "La fréquence minimale et maximale ne peuvent être égale à zéro.\nVeuillez modifier les valeurs!!!")
elif maxF==0 and Checkvar1==1:
showerror("Alerte", "La fréquence maximale ne peut être égale à zéro.\nVeuillez modifier la valeur!!!")
elif Checkvar1==1 and Checkvar2==0:
print(minF,maxF, Checkvar1,Checkvar2)
elif Checkvar1==0 and Checkvar2==1:
print(minF,maxF, Checkvar1,Checkvar2)
elif Checkvar1==1 and Checkvar2==1:
print(minF,maxF, Checkvar1,Checkvar2)
else:
showinfo("Alerte", "Problème avec les paramètres de filtrage!!!")
def quit1 (self):
self.window.destroy()
def quit9 (self):
self.windowFilt_WD.destroy()
def mag():
windowMagOrGravi.destroy()
window=Tk()
start=mclassMag(window)
window.geometry("1000x550")
window.mainloop()
def gravi():
windowMagOrGravi.destroy()
window=Tk()
start=mclassGravi(window)
window.geometry("1000x550")
window.mainloop()
windowMagOrGravi=Tk()
windowMagOrGravi.title("MagGrav - Sixense Engineering")
windowMagOrGravi.iconbitmap("SixenseLogo.ico")
Label(windowMagOrGravi,text=" \n \n \n \n \n \n \n").grid(row=1, column=1)
Label(windowMagOrGravi,text=" ").grid(row=2, column=1)
button1=Button (windowMagOrGravi, text="Mag", command=mag).grid(row=2, column=2)
Label(windowMagOrGravi,text=" ").grid(row=2, column=3)
button2=Button (windowMagOrGravi, text="Gravi", command=gravi).grid(row=2, column=4)
Label(windowMagOrGravi,text=" ").grid(row=2, column=5)
Label(windowMagOrGravi,text=" \n \n \n \n \n \n \n").grid(row=3, column=1)
windowMagOrGravi.mainloop()
Et en l'état ton code ressemble à un gros pavé de texte illisible, c'est pour cela que les forums fournissent des balises codes afin de rendre un code lisible, ici c'est le bouton <>.
Une fenêtre secondaire d'une fenêtre principale se fait avec Toplevel pas en définissant d'autres fenêtres principales Tk.
Qui fonctionne parfaitement tant que l'on entre bien un entier *
Remplace par et tu obtiendras le même problème que tu as.
Le problème venait d'une mauvaise gestion des fenêtres!
Désolé pour le manque de clarté du code!