У меня проблема с tkinter StrinVar (), и я не очень разбираюсь в tkinter и хотел бы помочь, спасибо.
Что я сделал, так это то, что я создал два окна, в каждом из которых есть виджет «Ввод» и виджет «Кнопка», если вы нажмете кнопку одного окна, тогда это окно будет выведено, и появится другое окно, и если вы нажмете кнопку в этом всплывающем окне, то он выводится и появляется всплывающее окно. Вот код: -
from tkinter import *
def x():
a1.set("")
a.withdraw()
b.deiconify()
def y():
b1.set("")
b.withdraw()
a.deiconify()
a=Tk()
a.withdraw()
a1=StringVar()
b1=StringVar()
Entry(a,textvariable=a1).pack()
Button(a,text="button1",command=x).pack()
a.withdraw()
b=Tk()
Entry(b,textvariable=b1).pack()
Button(b,text="button2",command=y).pack()
mainloop()
если вы что-то напишите в виджете ввода и нажмете кнопку2, появится второе окно, затем снова, если вы напишите что-нибудь в виджете ввода и нажмете кнопку1, поле ввода не обновляется в предыдущем первом окне.
я обнаружил, что кто-то предположил, что не должно быть двух экземпляров Tk()
у tkinter должен быть только один экземпляр Tk()
для многократного использования окна Toplevel()
. Итак, я изменил b=Tk()
на b=Toplevel()
, который работает нормально, а StringVar()
обновлял значение
Теперь мой вопрос таков: 1) В чем причина / логика отсутствия обновления StingVar()
с двумя экземплярами Tk()
2) есть ли способ заставить StringVar()
обновить значение с двумя экземплярами Tk()