我正在尝试从
这是我到目前为止尝试做的事情,我知道当我知道最新的选择时需要做更多的工作,但那会稍后再来处理。
Listbox
选择多个项目,按住 shift 然后选择并选中一系列项目似乎很直观,但是在 Tkinter 中似乎没有内置的此功能。因此,我正在尝试实现它,通过注册 shift 键并获取最新的选择来完成。但是,在尝试确定 Listbox
中最新选择时卡住了。 listbox.get(ACTIVE)
看起来比我预期的要慢一步。这是我到目前为止尝试做的事情,我知道当我知道最新的选择时需要做更多的工作,但那会稍后再来处理。
from Tkinter import *
class GUI():
def __init__(self,frame): # Some Init
self.listbox = Listbox(root, height=20, width=51, selectmode=MULTIPLE, exportselection=0, yscrollcommand=yscrollbar.set, xscrollcommand=xscrollbar.set)
# -- Some Grid setup here --
self.listbox.bind("<<ListboxSelect>>", self.selectionCallback)
frame.bind("<Shift_L>", self.shiftCallback)
frame.bind("<KeyRelease-Shift_L>", self.shiftCallback)
def selectionCallback(self,event):
print self.listbox.get(ACTIVE) # This is where im stuck
def shiftCallback(self,event):
if event.type is 2: #KeyPress
self.shift = True
elif event.type is 3: #KeyRelease
self.shift = False
if __name__ == "__main__":
root = Tk()
GUI(root)
selectmode=EXTENDED
是你要找的。 - fhdrsdg