Foros Python

Versión completa: Guardar dato en una variable(Tkinter)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola,

A ver si alguien me puede ayudar, adjunto código:

Código:
from tkinter import *


# Crear la ventana principal para la aplicación GUI
root = Tk()
root.geometry(newGeometry='420x200')
root.resizable(width=False, height=False)

# Titulo de la ventana
root.title("Inte")

# Etiqueta de control Codigo
l_codigo = Label(root, text="Codigo: ").place(x=40,y=60)  # , bg="blue"

# Boton Aceptar 
boton_aceptar = Button(root, text="Aceptar",command=root.destroy).place(x=170, y=150)

string = StringVar()

# Entrada de Dato
e_codigo = Entry(root, textvariable=string, width=30).place(x=110,  y=60)
f = string.get()
print(f)

root.mainloop()


Lo que quiero hacer es crear una ventana, meter un dato tipo string y luego ese dato guardarlo en una variable(f). Creo que algo no tengo bién...... a ver si me podeís ayudar...

Gracias.
Hola.

Si llamás al .get() inmediatamente después de crear la caja, siempre va a devolver una cadena vacía, porque el usuario no tuvo tiempo de escribir nada. Sería mejor agregar un botón para que el usuario presione cuando haya terminado de escribir, y ahí obtener el dato.

Te recomiendo esta introducción a Tk que explica este tipo de conceptos fundamentales: https://recursospython.com/guias-y-manua...a-tkinter/.

Saludos
Hola,

Código:
import pyautogui
import os
import shutil
import tkinter as tk
from tkinter import ttk



# Funcion para obtener el código
def guardar_dato():
    obtener_codigo = str(caja_codigo.get())
    return(obtener_codigo)
    ventana.destroy()
 

# Crear la ventana principal para la aplicación GUI
ventana = tk.Tk()

# Titulo de la ventana
ventana.title("Interoperabilidad")
ventana.config(width=300, height=200)

# Etiqueta de control Código
etiqueta_codigo = ttk.Label(text="Codigo:", font=("Arial",15))
etiqueta_codigo.place(x=40, y=20)

# Entrada de Dato
caja_codigo = ttk.Entry()
caja_codigo.place(x=120, y=23, width=100)

# Boton Aceptar
boton_aceptar = ttk.Button(text="Aceptar", command=guardar_dato)
boton_aceptar.place(x=100, y=100)




#Mostar ventana
ventana.mainloop()

f = boton_aceptar


a = f[0:3]
b = f[3:5]
c = f[0:7]

Ahora he hecho este código, me gustaría que el programa me guarde en una variable "f" el código que introduzco en la ventana.....con la función consigo que al dar al boton aceptar me devuelva el código y cierre la ventana, pero no se como hacer para que me guarde el código introducido en una variable"f" para seguir con el programa.

Saludos
En ese caso podrías usar una variable global, aunque no es de lo más elegante:

Código:
f = None

# Funcion para obtener el código
def guardar_dato():
    global f
    obtener_codigo = str(caja_codigo.get())
    f = obtener_codigo
    ventana.destroy()

Acá tenés un ejemplo mejor, al final del artículo: https://recursospython.com/guias-y-manua...s-tkinter/.

Saludos
Ya lo he solucionado.

Muchas gracias.