我有两个tkinter列表框(父级和子级)和两个按钮(add_button和remove_button)。 子列表框通过add_button从父列表框中获取项目,并且可以选择从中删除项目 通过remove_button。
的子列表框我的问题是加载GUI并按下add_button后,父列表框中的第一项是 即使它不是ACTIVE,也会添加到子列表框中。 child_frame也是如此,因为第一项被删除了 按下remove_button后即使它不是ACTIVE。我想要一种方法来防止这种情况。另外,我想要一个项目 无论按下add_button多少次,都只能添加到子列表框中。
下面的代码是另一个更大的代码的一部分。在解决上述问题时,任何帮助都将受到重视。 提前谢谢。
以下是代码:
from Tkinter import *
root = Tk()
root.geometry('330x200')
names = ['Bill', 'Jack', 'Joanne', 'Ann', 'Dave', 'Jane']
def add_name():
x = parent.get(ACTIVE)
child.insert(END, x)
def remove_name():
child.delete(ACTIVE)
parent = Listbox(root)
for name in names:
parent.insert(END, name)
parent.place(x=5, y=5)
add_button = Button(root, text='Add',
command=add_name)
add_button.place(x=148, y=5)
remove_button = Button(root, text='Remove',
command=remove_name)
remove_button.place(x=138, y=50)
child = Listbox(root)
child.place(x=200, y=5)
root.mainloop()
答案 0 :(得分:0)
为什么不将ACTIVE
替换为curselection
-
def add_name():
if len(parent.curselection()) != 0:
x = parent.get(parent.curselection())
child.insert(END, x)
else:
print "select an element first"
def remove_name():
if len(parent.curselection()) != 0:
child.delete(child.curselection())
else:
print "select an element first"