Variables Globales
Publicado por Jaime (3 intervenciones) el 12/05/2020 14:17:43
Buenas:
Soy novatillo y tengo un problema con una definición de una variable tipo StringVar con un programa con TKinter.
La cuestión es que defino una variable a nivel del root.tk tipo StringVar y luego llamo a una serie de funciones, definiendo la variable como global y el valor no se pasa entre las funciones.
La idea es que en la función agregar_categoria se pide, por un Entry, un valor en la variable categoria, y esta debe de pasarse a la función alta_categoria que está definida en un Button.
Muchas gracias,
Jaime.
Soy novatillo y tengo un problema con una definición de una variable tipo StringVar con un programa con TKinter.
La cuestión es que defino una variable a nivel del root.tk tipo StringVar y luego llamo a una serie de funciones, definiendo la variable como global y el valor no se pasa entre las funciones.
La idea es que en la función agregar_categoria se pide, por un Entry, un valor en la variable categoria, y esta debe de pasarse a la función alta_categoria que está definida en un Button.
Muchas gracias,
Jaime.
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
from tkinter import *
from tkinter import messagebox as MessageBox
def alta_categoria():
global categoria #Indico que la variable es global
MessageBox.showinfo("Alta Categoria","Categoria: {}".format(categoria.get())) #Muestro el valor
def agregar_categoria():
global categoria #Indico que la variable es global
tkCat= Tk()
tkCat.config(bd=15)
categoria.set("Especialidad") # Le cambio el valor
MessageBox.showinfo("Agregar Categoria","Categoria: {}".format(categoria.get())) # Lo muestro
Label(tkCat,text="Categoria:").pack(side="left")
Entry(tkCat,textvariable=categoria).pack(side="left") #Defino la entrada que no toma el valor de la variable
Button(tkCat,text="Crear",command=alta_categoria).pack(side="bottom") #Defino el Button que llama la función
tkCat.mainloop()
## Root Menu
root= Tk()
root.config(bd=15)
categoria=StringVar() # Defino la variable y le asigno un valor.
categoria.set("Postre")
menubar=Menu(root)
root.config(menu=menubar)
categoriamenu=Menu(menubar,tearoff=0)
categoriamenu.add_command(label="Crear",command=agregar_categoria) #Llamo a la función
menubar.add_cascade(label="Catetorias",menu=categoriamenu)
root.mainloop()
Valora esta pregunta


0