[英]Python 3 tkinter Listbox resetting
作为更大的Raspberry-Python3.5应用程序的一部分,我构建了一个填充有简单数据列表的tkinter列表框。 每当我用新数据重建列表时,tkinter都会在旧列表下面添加一个新列表,而不是使用相同的对象,而是仅替换数据。
我尝试了我可以想象的任何选项(以及一些奇怪的选项...),只得到一个列表,但无济于事。
如何删除旧对象和/或构建一个新对象和/或仅替换数据?
这是一个简短的工作示例:
import tkinter as tk
root = tk.Tk()
datalist = 0 ,66 ,42 ,553 ,68
def run():
listbox = tk.Listbox(root)
listbox.insert(0,datalist)
listbox.pack()
stepbutton = tk.Button(root, text = "Step", command = run)
stepbutton.pack()
如果要用新列表替换现有项目,则需要先删除它们。 您可以使用.delete()
方法删除列表项。 这将删除列表框中的所有项目。
listbox.delete(0, 'end')
# then insert new list here
要执行您的操作,请创建一个列表框,然后在命令run()
交换列表框的内容。
import tkinter as tk
root = tk.Tk()
# listbox to display data
listbox = tk.Listbox(root)
listbox.pack()
datalist = 0 ,66 ,42 ,553 ,68
def run():
global listbox
# clear listbox
listbox.delete(0, 'end')
# insert new contents
listbox.insert(0, datalist)
stepbutton = tk.Button(root, text="Step", command=run)
stepbutton.pack()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.