如何用新标签替换 tkinter 标签?
How can I replace a tkinter label with a new one?
我正在尝试编写一个相当简单的程序,使用 tkinter GUI 将数字转换为二进制。我 运行 遇到的问题是,当我输入一个大数字(例如 1000)然后输入一个较小的数字(例如 2)并点击提交时,新输出只显示在旧输出的中间一。在我使用的示例中,它看起来像“二进制的 1000 i 2 是 10 01000”
如何在显示新标签之前完全删除旧标签?
from tkinter import *
win = Tk()
def compute_binary():
user_num = binary_entry.get()
user_num = int(user_num)
binary_equivalent = ("{:b}".format(user_num))
binary_output = StringVar()
binary_output.set(str(user_num) + " in binary is " + binary_equivalent)
binary_label = Label(win, textvariable = binary_output)
binary_label.grid(row = 1, column = 1)
win.title("Number to Binary Converter")
win.geometry("450x75")
input_request = Label(win, text = "Input a number to\nconvert to binary:")
input_request.grid(row = 0, column = 0)
binary_entry = Entry(win)
binary_entry.grid(row = 0, column = 1)
entry_confirm = Button(win, text = "Submit", command = compute_binary)
entry_confirm.grid(row=0, column = 2)
win.mainloop()
您为每次转化的结果重新创建新标签,并且新标签覆盖在之前的标签之上。
您需要创建一次结果标签并在每次转化时更新它:
from tkinter import *
win = Tk()
def compute_binary():
user_num = binary_entry.get()
user_num = int(user_num)
binary_equivalent = ("{:b}".format(user_num))
binary_output.set("{} in binary is {}".format(user_num, binary_equivalent))
win.title("Number to Binary Converter")
win.geometry("450x75")
input_request = Label(win, text="Input a number to\nconvert to binary:")
input_request.grid(row=0, column=0)
binary_entry = Entry(win)
binary_entry.grid(row=0, column=1)
entry_confirm = Button(win, text="Submit", command=compute_binary)
entry_confirm.grid(row=0, column=2)
binary_output = StringVar()
binary_label = Label(win, textvariable=binary_output)
binary_label.grid(row=1, column=0, columnspan=3)
win.mainloop()
我正在尝试编写一个相当简单的程序,使用 tkinter GUI 将数字转换为二进制。我 运行 遇到的问题是,当我输入一个大数字(例如 1000)然后输入一个较小的数字(例如 2)并点击提交时,新输出只显示在旧输出的中间一。在我使用的示例中,它看起来像“二进制的 1000 i 2 是 10 01000”
如何在显示新标签之前完全删除旧标签?
from tkinter import *
win = Tk()
def compute_binary():
user_num = binary_entry.get()
user_num = int(user_num)
binary_equivalent = ("{:b}".format(user_num))
binary_output = StringVar()
binary_output.set(str(user_num) + " in binary is " + binary_equivalent)
binary_label = Label(win, textvariable = binary_output)
binary_label.grid(row = 1, column = 1)
win.title("Number to Binary Converter")
win.geometry("450x75")
input_request = Label(win, text = "Input a number to\nconvert to binary:")
input_request.grid(row = 0, column = 0)
binary_entry = Entry(win)
binary_entry.grid(row = 0, column = 1)
entry_confirm = Button(win, text = "Submit", command = compute_binary)
entry_confirm.grid(row=0, column = 2)
win.mainloop()
您为每次转化的结果重新创建新标签,并且新标签覆盖在之前的标签之上。
您需要创建一次结果标签并在每次转化时更新它:
from tkinter import *
win = Tk()
def compute_binary():
user_num = binary_entry.get()
user_num = int(user_num)
binary_equivalent = ("{:b}".format(user_num))
binary_output.set("{} in binary is {}".format(user_num, binary_equivalent))
win.title("Number to Binary Converter")
win.geometry("450x75")
input_request = Label(win, text="Input a number to\nconvert to binary:")
input_request.grid(row=0, column=0)
binary_entry = Entry(win)
binary_entry.grid(row=0, column=1)
entry_confirm = Button(win, text="Submit", command=compute_binary)
entry_confirm.grid(row=0, column=2)
binary_output = StringVar()
binary_label = Label(win, textvariable=binary_output)
binary_label.grid(row=1, column=0, columnspan=3)
win.mainloop()