这里有一个(一半)尝试通过绑定到事件,而不是绑定到和{}事件。这是因为只有当我们从外部进入Listbox时,才会引发,但是一旦我们用鼠标进入Listbox内部,就不会引发其他的{}事件,而且我们无法跟踪鼠标在上面的哪个项目。在
每次鼠标移动时调用一个函数可能会导致工作负担过重,所以我认为这个特性不值得这样做。在
程序仍然不能完美地工作,我仍然要理解原因:基本上,有时项目的背景和字体颜色没有正确地改变,有某种延迟或什么的。在from tkinter import *
class CustomListBox(Listbox):
def __init__(self, master=None, *args, **kwargs):
Listbox.__init__(self, master, *args, **kwargs)
self.bg = "white"
self.fg = "black"
self.h_bg = "#eee8aa"
self.h_fg = "blue"
self.current = -1 # current highlighted item
self.fill()
self.bind("", self.on_motion)
self.bind("", self.on_leave)
def fill(self, number=15):
"""Fills the listbox with some numbers"""
for i in range(number):