【发布时间】:2021-09-13 00:06:24
【问题描述】:
我在将列表框信息获取到标签没有标签相互重叠时遇到问题,我尝试使用“.configure()”和“label['text'] =”来更改标签的输出,但是旧信息保留在屏幕上
import tkinter as tk
window = tk.Tk()
window.geometry('1000x500')
lbx_info = ['short frase', 'medium sentence', 'the longest sentence in the list']
lbl_bg = ['#ff0000', '#ffff00', '#00cc00']
lbx = tk.Listbox(window, font='Arial 20', bd=10)
for e in lbx_info:
lbx.insert(tk.END, e)
lbx.place(x=0, y=0)
def show(pos):
name_lbl = tk.Label(window, font='Arial 16')
name_lbl.configure(text=f'Nome: {lbx_info[pos[0]]}', bg=f'{lbl_bg[pos[0]]}')
name_lbl.place(x=500, y=0)
lbx.bind('<<ListboxSelect>>', lambda m: show(lbx.curselection()))
window.mainloop()
有办法吗?
【问题讨论】:
-
尝试将
name_lbl = tk.Label(window, font='Arial 16')移出函数。 -
show每次调用时都会创建一个新标签。
标签: python tkinter listbox label