Python/tkinter:ListBox分隔符,禁用项目,键盘导航?
-
30-09-2019 - |
题
我正在研究Tkinter ListBox小部件,并且无法找到以下功能的解决方案:
如何创建不可选择的水平分离器项目,例如。分隔符等于tkinter菜单widget的.add_separator()? (使用破折号和下划线之类的字符看起来很糟糕)。
如何禁用特定物品?我尝试使用.itemconfig(index,state ='disabled')而没有成功。
我如何启用键盘导航,例如。当用户的键盘输入自动将一个滚动到一个以用户键入的文本开头的最接近的项目时,将一个滚动滚动?我必须约束('u003CKeyPress> ,...)自己管理这种行为?
上述某些功能是否更容易使用文本小部件或TTK TreeView小部件实现?
谢谢你,马尔科姆
解决方案
你不能。小部件不支持这一点。
您不能禁用某些项目,小部件不支持状态属性。话虽如此,您可以监视选择并执行适当的操作,如果用户选择禁用的东西,并使用项目前景表示残疾人。
您将需要绑定到按键事件并自己管理行为。这不是特别困难,只是有点乏味。
文本小部件可能是您最好的选择,尽管您必须添加绑定才能模仿ListBox的默认绑定。
底线:TKINTER不提供任何直接支持您想做的事情的东西,但是构建块都在那里。您只需要自己构建它。
不隶属于 StackOverflow