buh*_*htz 4 tkinter python-3.x
我在教程中读到,我可以将数据从其中分离tkinter.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()
Run Code Online (Sandbox Code Playgroud)
这里的列表框(GUI 中)不受影响。
据我了解,有一种方法可以Listbox在修改数据列表时绝对自动刷新其内容。所以我不用碰Listbox。我只需要触摸里面的数据list().
有办法吗?
列表框有get(),delete()和insert()。
您可以从中获得价值box,将其删除并将其放在新的位置。
或者您可以从中删除所有项目box并从中添加新项目mylist。
我觉得这个方法比较通用。
box.delete(0, 'end')
for item in mylist:
box.insert('end', item)
Run Code Online (Sandbox Code Playgroud)
因为你使用listvariable所以你可以直接替换列表var
var.set(mylist)
Run Code Online (Sandbox Code Playgroud)
完整代码
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8925 次 |
| 最近记录: |