Я пытаюсь создать пользовательский интерфейс, в котором пользователь вводит свое имя в поле ввода, когда я пытаюсь напечатать переменную имени, что-то идет не так, как надо, и печатается PY_VAR.
import tkinter as tk
class TestApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self._frame = None
self.geometry('400x500')
self.switch_frame(StartPage)
def switch_frame(self, frame_class):
"""Destroys current frame and replaces it with a new one."""
new_frame = frame_class(self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.grid()
def save(self,var1name):
print(var1name)
class StartPage(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
var1name = tk.StringVar()
#Entry of basic information
tk.Label(self, text="Please enter setup").grid(row=0, column=1, sticky="W")
tk.LabelFrame(self, text="labelframe").grid()
tk.Label(self, text="Name: ").grid(row=1, column=0, sticky="W")
tk.Entry(self,textvar=var1name).grid(row=1, column=2, sticky="W")
tk.Button(self, text="Set",
command=lambda: master.save(var1name)).grid(row=9, column=1, sticky="E")
#tk.Button(self, text="Next",
#command=lambda: master.switch_frame(PageOne)).grid(row=9, column=2, sticky="E")
if __name__ == "__main__":
app = TestApp()
app.mainloop()
я ожидалимя напечатано на интерфейсе Python, но вместо него напечатано PY_VAR