Python 3.x 通过Tkinter中的listvariable修改Listbox条目
我在一篇教程中读到,我可以将Python 3.x 通过Tkinter中的listvariable修改Listbox条目,python-3.x,tkinter,Python 3.x,Tkinter,我在一篇教程中读到,我可以将tkinter.Listbox中的数据分离到我自己的列表中。我在这里的例子中这样做了。 但是,如何根据我自己的variablelist操作Listbox条目的顺序呢 #!/usr/bin/env python3 from tkinter import * root = Tk() mylist = ['one', 'two', 'three'] var = StringVar(value=mylist) box = Listbox(master=root, list
tkinter.Listbox
中的数据分离到我自己的列表中。我在这里的例子中这样做了。
但是,如何根据我自己的variablelist操作Listbox条目的顺序呢
#!/usr/bin/env python3
from tkinter import *
root = Tk()
mylist = ['one', 'two', 'three']
var = StringVar(value=mylist)
box = Listbox(master=root, listvariable=var)
box.pack(fill=BOTH, expand=True)
# this need to affect the list
mylist.append('four')
mylist.remove('two')
mylist.insert(3, mylist.pop(1))
root.mainloop()
此处的列表框(GUI中)不受影响
据我所知,当我修改数据列表时,Listbox
refresh absolut会自动刷新其内容。因此,我不必触摸列表框
。我只需要触摸列表()
中的数据
有办法吗?有get()
,delete()
和insert()
您可以从
框
中获取值,将其移除并放置在新位置
或者您可以从
框中删除所有项目
,并从mylist
中添加新项目我认为这种方法更具普遍性
box.delete(0, 'end')
for item in mylist:
box.insert('end', item)
因为您使用了listvariable
,所以可以在var
var.set(mylist)
完整代码
from tkinter import *
root = Tk()
mylist = ['one', 'two', 'three']
var = StringVar(value=mylist)
box = Listbox(master=root, listvariable=var)
box.pack(fill=BOTH, expand=True)
mylist.append('four')
mylist.remove('two')
mylist.insert(3, mylist.pop(1))
var.set(mylist)
root.mainloop()
您可以从
框中删除所有项目,并从mylist
中添加新项目。我明白了。该机构不是100%自动的。谢谢