【发布时间】:2012-04-20 08:58:34
【问题描述】:
我在单选模式下设置了 2 个单独的列表框。当我从listboxA 中选择一个项目时,它会突出显示,但是当我从listboxB 中选择一个项目时,它会突出显示,而来自listboxA 的项目仍然处于活动状态,但未突出显示。如何让两者都突出显示?
【问题讨论】:
我在单选模式下设置了 2 个单独的列表框。当我从listboxA 中选择一个项目时,它会突出显示,但是当我从listboxB 中选择一个项目时,它会突出显示,而来自listboxA 的项目仍然处于活动状态,但未突出显示。如何让两者都突出显示?
【问题讨论】:
简答:将每个列表框的exportselection属性设置为False
Tkinter 起源于 X 窗口系统。 X 有一个叫做“选择”的概念,它类似于系统剪贴板(更准确地说,剪贴板是“PRIMARY”选择)。默认情况下,一些 tkinter 小部件将它们的选择导出为 PRIMARY 选择。一个应用程序一次只能有一个 PRIMARY 选项,这就是当您在两个列表框之间单击时突出显示消失的原因。
Tkinter 让您可以使用列表框(以及文本和条目小部件)的 exportselection 配置选项来控制此行为。将其设置为False 可防止将选择导出到 X 选择,从而允许小部件在不同的小部件获得焦点时保留其选择。
例如:
the_listbox = tk.Listbox(..., exportselection=False)
出口选择 指定小部件中的选择是否也应该是 X 选择。该值可以具有任何接受的形式 Tcl_GetBoolean,例如 true、false、0、1、yes 或 no。如果 选择被导出,然后在小部件中选择取消选择 当前 X 选择,在小部件外部选择会取消选择任何小部件 选择,小部件将响应选择检索请求 当它有选择时。默认值通常用于小部件导出 选择。
【讨论】: