Всегда пустые значения при получении данных из переменных StringVal, IntVal
Есть код интерфейса на tkinter, всё написал, добавил выпадающий список и строки ввода.
Всё ок, интерфейс работает. Пришло время выводить выпадающий список и строки ввода в переменные появились проблемы. Выпадающий список вывелся нормально, а вот текстовые поля всегда или ноль(если сделать IntVar) или пустота(если сделать StringVar). Уже всё обрыскал, всё перепробовал, так нечего не и не помогло.
Код:
import tkinter as tk
from tkinter import *
from tkinter import messagebox
OPTIONS = [
" RF ",
" EU ",
" AE "
]
master = Tk()
Entry(master)
master.minsize(width=200, height=200)
variable = StringVar(master)
variable2 = StringVar(master)
message = StringVar(master)
message2 = StringVar(master)
message_entry = Entry(textvariable=message)
message_entry2 = Entry(textvariable=message2)
variable.set(OPTIONS[0])
variable2.set(OPTIONS[0])
w = OptionMenu(master, variable, *OPTIONS)
w2 = OptionMenu(master, variable2, *OPTIONS)
INE = variable.get()
OUTE = variable2.get()
INEM = message.get()
OUTEM = message2.get()
def change():
print(INEM)
w.config(width=10, height=1)
w2.config(width=10, height=1)
Label(text="ВХОД:").grid(row=0, column=0)
Label(text="ВИХОД:").grid(row=1, column=0)
w.grid(row=0, column=1)
message_entry.grid(row=0, column=2, sticky="w")
w2.grid(row=1, column=1)
message_entry2.grid(row=1, column=2, sticky="w")
b1 = Button(text="Изменить", width=15, height=3)
b1.config(command=change)
b1.place(x=75, y=150)
mainloop()
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Вы получаете данные из переменных только один раз, прямо после создания интерфейса, когда там еще ничего нет - поэтому пустые значения. Вместо этого нужно каждый раз при вызове функции change заново получать эти данные:
def change():
INE = variable.get()
OUTE = variable2.get()
INEM = message.get()
OUTEM = message2.get()
print(INE)
print(OUTE)
print(INEM)
print(OUTEM)