У меня есть функция, которая возвращает пользовательский ввод. Однако я не могу использовать этот пользовательский ввод в предложении. После первой пары комментариев я понимаю, что это возможно из-за того, что моя метка была создана до того, как пользователь мог ввести какое-либо значение.
Я не уверен, как это исправить. Любая помощь будет принята с благодарностью.
class NamePage(tk.Frame):
def __init__(self, parent, controller):
self.controller = controller
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Please type the
name you want your character to have",
width=127, height=30,
font=font_remaining, bd=1,
relief="solid", anchor=CENTER)
label.grid(row=1, column=1, pady=10, padx=10)
button_continue = tk.Button(self, width=40, height=3, bd=1
relief="solid",
font=font_button, text="Continue",
command=lambda: value())
button_continue.place(x=425, y=500)
entry1 = tk.Entry(self,
textvariable=self.controller.shared_data["name"])
entry1.place(x=425, y=400)
entry1.config(width=67)
def value():
value1 = self.controller.shared_data["name"].get()
print(value1)
controller.show_frame(TitlePage)
class TitlePage(tk.Frame):
def __init__(self, parent, controller):
self.controller = controller
tk.Frame.__init__(self, parent)
label = tk.Label(self, bg=background_options, text="The Adventure of
"
+
self.value_name(), width=127, height=30,
font=font_title, bd=1,
relief="solid", anchor=CENTER)
label.grid(row=1, column=1, pady=10, padx=10)
def value_name(self):
value2 = self.controller.shared_data["name"].get()
input_name = value2
print(input_name)
return input_name
app = firstwindow()
app.mainloop()
пользовательские данные Джон
Ожидаемые результаты = Приключение Иоанна
фактические результаты = Приключение