Tkinter - 当我尝试打印我使用 Entry 定义的变量时,打印 returns ".!entry"
Tkinter - When I try to print a varibale that I used Entry to define, the print returns ".!entry"
我正在学习 Tkinter,我正在尝试使用 Entry
:
设置一个全局变量
def initial_user_name_set():
global user_name
initial_greeting_label()
user_name = Entry(root)
user_name.pack()
user_name_enter_button()
这样我就可以根据 Entry
值创建一个具有唯一输出的标签(user_name_enter_button
函数只是一个按钮,按下时会调用 time_based_greeting
函数:
def time_based_greeting():
user_name.get()
if currentTime.hour < 12:
morning_greeting_label()
elif 12 <= currentTime.hour < 18:
afternoon_greeting_label()
else:
evening_greeting_label()
print(user_name)
问候语标签示例:
def evening_greeting_label():
evening_greeting = Label(root, text="Good evening, " + user_name.get() + ".")
evening_greeting.pack()
现在仅此一项就可以正常工作了。如果您要输入您的姓名 "Joe"
;那么标签将是 "Good evening, Joe."
但是,当我稍后尝试 print
user_name
变量时;我只是将 ".!entry"
打印到终端而不是 "Joe"
.
我完全不明白为什么会这样,非常感谢任何帮助。
如果我可以更好地安排我的问题,请告诉我,谢谢。
很明显,user_name
是一个 Entry
对象。您正在以变量 user_name
的名称实例化 class Entry
因此您可以使用它的各种方法,例如 user_name.get()
其中 returns 您在其中键入的内容条目小部件。如果你单独打印 user_name
,你会得到 '.!entry'
,它指的是 user_name
是一个 Entry
对象,也许称之为 tkinters 识别其 [=31= 对象的方式]是的。您甚至可以尝试 print(evening_greeting)
,它将类似于 '.!labeln'
,其中 n
是小部件的顺序数,.
是主根 window。
TL;DR: user_name
是一个 Entry
对象,user_name.get()
是对象 user_name
的一个方法,returns 在输入小部件。
我正在学习 Tkinter,我正在尝试使用 Entry
:
def initial_user_name_set():
global user_name
initial_greeting_label()
user_name = Entry(root)
user_name.pack()
user_name_enter_button()
这样我就可以根据 Entry
值创建一个具有唯一输出的标签(user_name_enter_button
函数只是一个按钮,按下时会调用 time_based_greeting
函数:
def time_based_greeting():
user_name.get()
if currentTime.hour < 12:
morning_greeting_label()
elif 12 <= currentTime.hour < 18:
afternoon_greeting_label()
else:
evening_greeting_label()
print(user_name)
问候语标签示例:
def evening_greeting_label():
evening_greeting = Label(root, text="Good evening, " + user_name.get() + ".")
evening_greeting.pack()
现在仅此一项就可以正常工作了。如果您要输入您的姓名 "Joe"
;那么标签将是 "Good evening, Joe."
但是,当我稍后尝试 print
user_name
变量时;我只是将 ".!entry"
打印到终端而不是 "Joe"
.
我完全不明白为什么会这样,非常感谢任何帮助。
如果我可以更好地安排我的问题,请告诉我,谢谢。
很明显,user_name
是一个 Entry
对象。您正在以变量 user_name
的名称实例化 class Entry
因此您可以使用它的各种方法,例如 user_name.get()
其中 returns 您在其中键入的内容条目小部件。如果你单独打印 user_name
,你会得到 '.!entry'
,它指的是 user_name
是一个 Entry
对象,也许称之为 tkinters 识别其 [=31= 对象的方式]是的。您甚至可以尝试 print(evening_greeting)
,它将类似于 '.!labeln'
,其中 n
是小部件的顺序数,.
是主根 window。
TL;DR: user_name
是一个 Entry
对象,user_name.get()
是对象 user_name
的一个方法,returns 在输入小部件。