4

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

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

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

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

  4. 使用 Text 小部件或小部件是否更容易实现上述某些功能ttk.Treeview

4

1 回答 1

5
  1. 你不能。小部件不支持。

  2. 您不能禁用某些项目,小部件不支持状态属性。话虽如此,如果用户选择了禁用的东西,您可以监视选择并执行适当的操作,并使用项目前景来表示禁用。

  3. 您将需要绑定到按键事件并自己管理行为。这不是特别困难,只是有点乏味。

  4. 文本小部件可能是您最好的选择,尽管您必须添加绑定以模仿列表框的默认绑定。

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

于 2010-11-10T03:43:40.127 回答