为啥当我使用 tkinter 配置选项时这个标签没有改变

Posted

技术标签:

【中文标题】为啥当我使用 tkinter 配置选项时这个标签没有改变【英文标题】:Why isn't this label changing when I use the tkinter config option为什么当我使用 tkinter 配置选项时这个标签没有改变 【发布时间】:2021-06-29 08:14:55 【问题描述】:

我想更改此标签,因此我使用了widget.config 选项,但由于某种原因它无法正常工作。这是我的代码:

import tkinter as tk

root = tk.Tk()
root.attributes('-fullscreen', True)


exit_button = tk.Button(root, text="Exit", command = root.destroy)
exit_button.place(x=1506, y=0)


def answer():
    global main_entry
    answer_label.config(main_entry)

frame = tk.Frame(root)
main_entry = tk.Entry(frame, width=100)
main_entry.grid(row=0, column=0)
go_button = tk.Button(frame, text='Go!', width=85, command = answer)
go_button.grid(row=1, column=0)
answer_label = tk.Label(text = "Hey").pack()
frame.place(relx=.5, rely=.5, anchor='center')

root.mainloop()

【问题讨论】:

【参考方案1】:

在使用配置功能时,您必须提及要更改的内容。 尝试:- answer_label.config(text="Text that you want to be displayed")

此外,您还没有从 Entry 小部件中获取值:为此,您可以使用: answer_label.config(text=main_entry.get())

完整的代码如下所示:

import tkinter as tk

root = tk.Tk()
root.attributes('-fullscreen', True)


exit_button = tk.Button(root, text="Exit", command = root.destroy)
exit_button.place(x=1506, y=0)


def answer():
    answer_label.config(text=main_entry.get())

frame = tk.Frame(root)
main_entry = tk.Entry(frame, width=100)
main_entry.grid(row=0, column=0)
go_button = tk.Button(frame, text='Go!', width=85, command = answer)
go_button.grid(row=1, column=0)
answer_label = tk.Label(text = "Hey")
answer_label.pack()
frame.place(relx=.5, rely=.5, anchor='center')

root.mainloop()

【讨论】:

您没有错,您可以消除答案中的不确定性。还要记下将global 删除,因为它在那里没用。 感谢您为我指明了正确的方向。 你能告诉我这在我的完整代码中是什么样子吗? 立即查看。我已经更新了解决方案。【参考方案2】:

此代码有效。它配置标签以更改文本。我不知道你想用 config(main_entry) 实现什么。

import tkinter as tk

root = tk.Tk()
root.attributes('-fullscreen', True)


exit_button = tk.Button(root, text="Exit", command = root.destroy)
exit_button.place(x=1506, y=0)


def answer():
    global main_entry, answer_label
    answer_label.config(text="hi")

frame = tk.Frame(root)
main_entry = tk.Entry(frame, width=100)
main_entry.grid(row=0, column=0)
go_button = tk.Button(frame, text='Go!', width=85, command = answer)
go_button.grid(row=1, column=0)
answer_label = tk.Label(text = "Hey")
answer_label.pack()
frame.place(relx=.5, rely=.5, anchor='center')

root.mainloop()

【讨论】:

以上是关于为啥当我使用 tkinter 配置选项时这个标签没有改变的主要内容,如果未能解决你的问题,请参考以下文章

插入带标签的行时出现Tkinter Treeview问题

当我在构建选项中设置 iPhone 开发人员代码签名身份时,为啥 XCode 会继续尝试安装临时配置文件?

在python tkinter中调用事件时,变量不更新的标签

当特定窗口关闭时,如何关闭所有 Tkinter 窗口?

为啥当我添加一个选择选项来选择表单字段时不会更改为有效?

标签调整错误tkinter