我正在研究 Tkinter 列表框小部件,但无法找到以下功能的解决方案:
如何创建不可选择的水平分隔符项目,例如。分隔符相当于 Tkinter 菜单小部件的 .add_separator()? (使用破折号和下划线等字符看起来很糟糕)。
如何禁用特定项目?我尝试使用 .itemconfig(index, state='disabled') 但没有成功。
如何启用键盘导航,例如。当用户的键盘输入自动向前滚动到最近的以用户键入的文本开头的项目时?我必须
bind(<KeyPress>, ...)
并自己管理这种行为?使用文本小部件或
ttk.Treeview
是否可以更轻松地实现上述某些功能?小部件?
最佳答案
你不能。该小部件不支持该功能。
您不能禁用某些项目,小部件不支持状态属性。也就是说,您可以监视选择并在用户选择禁用的内容时执行适当的操作,并使用项目前景表示禁用。
您需要绑定(bind)到按键事件并自行管理行为。不是特别难,就是有点乏味。
文本小部件可能是您的最佳选择,但您必须添加绑定(bind)以模仿列表框的默认绑定(bind)。
底线:Tkinter 没有提供任何直接支持你想做的事情的东西,但构建 block 都在那里。您只需要自己构建即可。
关于python - Tkinter:列表框分隔符、禁用项、键盘导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4140396/