Tkinter - 当我尝试打印我使用 Entry 定义的变量时,打印返回".!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."

然而,当我后来尝试printuser_name变量;我只是将".!entry"打印到终端,而不是"Joe"

我完全不明白为什么会发生这种情况,任何帮助都将是非常感激的。

也请让我知道我是否可以更好地布局我的问题,谢谢。

很明显,user_name是一个Entry对象。您正在以变量user_name的名称实例化类Entry,因此您可以使用它的各种方法,例如user_name.get(),它返回您在条目小部件中键入的内容。如果你单独打印user_name,你会得到'.!entry',它指的是user_name是一个Entry对象,也许可以称之为识别其类对象的一种方式。您甚至可以尝试print(evening_greeting),它将类似于'.!labeln',其中n是小部件的顺序编号,.是主根窗口。

TL;DR:user_name是一个Entry对象,user_name.get()是对象user_name的一个方法,它返回条目小部件内部键入的值。

相关内容

  • 没有找到相关文章

最新更新