Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter binding ListboxSelect可在框架中使用多个列表框_Python_Tkinter_Listbox_Bind - Fatal编程技术网

Python Tkinter binding ListboxSelect可在框架中使用多个列表框

Python Tkinter binding ListboxSelect可在框架中使用多个列表框,python,tkinter,listbox,bind,Python,Tkinter,Listbox,Bind,我是通过以下链接想到将函数绑定到列表框的: 仅使用一个列表框就可以很好地实现这一点。 当我试图在页面上引入第二个列表框,并将其绑定到第二个函数时,我想象的功能就消失了 显然,当第一个列表中的项目已被选中时,选择第二个列表中的项目将从第一个列表中删除该选择。有人能帮我纠正这种行为吗 以下是我的示例代码: import tkinter as tk window = tk.Tk() #generic window size, showing listbox is smaller than wind

我是通过以下链接想到将函数绑定到
列表框的:

仅使用一个
列表框
就可以很好地实现这一点。 当我试图在页面上引入第二个
列表框
,并将其绑定到第二个函数时,我想象的功能就消失了

显然,当第一个列表中的项目已被选中时,选择第二个列表中的项目将从第一个列表中删除该选择。有人能帮我纠正这种行为吗

以下是我的示例代码:

import tkinter as tk

window = tk.Tk()
#generic window size, showing listbox is smaller than window
window.geometry("600x480")

frame = tk.Frame(window)
frame.pack()

def select(evt):
    event = evt.widget
    output = []
    selection = event.curselection()
    #.curselection() returns a list of the indexes selected
    #need to loop over the list of indexes with .get()
    for i in selection:
        o = listBox.get(i)
        output.append(o)
    print(output)

def select2(evt):
    event = evt.widget
    output = []
    selection = event.curselection()
    #.curselection() returns a list of the indexes selected
    #need to loop over the list of indexes with .get()
    for i in selection:
        o = listBox.get(i)
        output.append(o)
    print(output)

listBox = tk.Listbox(frame, width=20, height = 5, selectmode='multiple')

listBox.bind('<<ListboxSelect>>',select)
listBox.pack(side="left", fill="y")
scrollbar = tk.Scrollbar(frame, orient="vertical")
scrollbar.config(command=listBox.yview)
scrollbar.pack(side="right", fill="y")
listBox.config(yscrollcommand=scrollbar.set)

for x in range(100):
    listBox.insert('end', str(x))


listBox2 = tk.Listbox(frame, width=20, height = 5, selectmode='multiple')

listBox2.bind('<<ListboxSelect>>',select2)
listBox2.pack(side="left", fill="y")
scrollbar2 = tk.Scrollbar(frame, orient="vertical")
scrollbar2.config(command=listBox.yview)
scrollbar2.pack(side="right", fill="y")
listBox2.config(yscrollcommand=scrollbar.set)

for x in range(100):
    listBox2.insert('end', str(x))



window.mainloop()
将tkinter作为tk导入
window=tk.tk()
#通用窗口大小,显示列表框小于窗口
窗几何(“600x480”)
框架=传统框架(窗口)
frame.pack()
def选择(evt):
event=evt.widget
输出=[]
selection=event.curselection()
#.curselection()返回所选索引的列表
#需要使用.get()循环索引列表
对于我的选择:
o=listBox.get(i)
输出追加(o)
打印(输出)
def select2(evt):
event=evt.widget
输出=[]
selection=event.curselection()
#.curselection()返回所选索引的列表
#需要使用.get()循环索引列表
对于我的选择:
o=listBox.get(i)
输出追加(o)
打印(输出)
listBox=tk.listBox(边框,宽度=20,高度=5,选择mode='multiple')
listBox.bind(“”,选择)
listBox.pack(side=“left”,fill=“y”)
scrollbar=tk.scrollbar(frame,orient=“vertical”)
scrollbar.config(命令=listBox.yview)
滚动条包装(side=“right”,fill=“y”)
配置(yscrollcommand=scrollbar.set)
对于范围(100)内的x:
listBox.insert('end',str(x))
listBox2=tk.Listbox(框架,宽度=20,高度=5,选择模式='multiple')
listBox2.bind(“”,选择2)
列表框2.pack(side=“left”,fill=“y”)
scrollbar2=tk.Scrollbar(框架,方向=“垂直”)
scrollbar2.config(命令=listBox.yview)
滚动条2.pack(side=“right”,fill=“y”)
listBox2.config(yscrollcommand=scrollbar.set)
对于范围(100)内的x:
列表框2.插入('end',str(x))
window.mainloop()

创建列表框时,只需添加参数
exportselection=False
tk.Listbox(frame,…)
。然后您的列表框将继续被选中

listBox = tk.Listbox(frame, width=20, height = 5, selectmode='multiple', exportselection=False)

listBox2 = tk.Listbox(frame, width=20, height = 5, selectmode='multiple', exportselection=False)

select()
select2()
函数中的
listBox
是否应该是
event