python - Tkinter:列表框分隔符、禁用项、键盘导航?

标签 python user-interface listbox tkinter ttk

我正在研究 Tkinter 列表框小部件,但无法找到以下功能的解决方案:

  1. 如何创建不可选择的水平分隔符项目,例如。分隔符相当于 Tkinter 菜单小部件的 .add_separator()? (使用破折号和下划线等字符看起来很糟糕)。

  2. 如何禁用特定项目?我尝试使用 .itemconfig(index, state='disabled') 但没有成功。

  3. 如何启用键盘导航,例如。当用户的键盘输入自动向前滚动到最近的以用户键入的文本开头的项目时?我必须 bind(<KeyPress>, ...)并自己管理这种行为?

  4. 使用文本小部件或 ttk.Treeview 是否可以更轻松地实现上述某些功能?小部件?

最佳答案

  1. 你不能。该小部件不支持该功能。

  2. 您不能禁用某些项目,小部件不支持状态属性。也就是说,您可以监视选择并在用户选择禁用的内容时执行适当的操作,并使用项目前景表示禁用。

  3. 您需要绑定(bind)到按键事件并自行管理行为。不是特别难,就是有点乏味。

  4. 文本小部件可能是您的最佳选择,但您必须添加绑定(bind)以模仿列表框的默认绑定(bind)。

底线:Tkinter 没有提供任何直接支持你想做的事情的东西,但构建 block 都在那里。您只需要自己构建即可。

关于python - Tkinter:列表框分隔符、禁用项、键盘导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4140396/

相关文章:

python - 为什么绝对导入找不到我的模块?

python - 打印 python 嵌套字典的所有值的完整键路径

具有上下文菜单的 WPF 列表框可以执行,直到选择某些内容后才调用

c# - 使用 WPF 的 .NET 4 应用程序的 Mono 端口的 GUI

vba - MS Access : eval() returns NULL when accessing . 列(x,y)属性

c# - WPF 更改 ListBox 背景颜色,启用和禁用

python - 了解 tf.scatter_nd_update : How to update column values?

python - doc2vec 中单个文档的多个标签。标签文档

user-interface - Python 3.3 中的现代 GUI 编程

java - 设置多个彼此独立的 JFrame