我在单选模式下设置了2个单独的列表框。当我从listboxA
中选择一个项目时,它会突出显示,但是当我从listboxB
中选择一个项目时,它会突出显示,listboxA
中的项目仍然有效,但不会突出显示。如何突出显示两者?
答案 0 :(得分:26)
简答:将每个列表框的exportselection
属性设置为False
Tkinter的根源在于X窗口系统。 X有一个称为“选择”的概念,它类似于系统剪贴板(更准确地说,剪贴板是“主要”选择)。默认情况下,几个tkinter小部件将其选择导出为PRIMARY选择。一个应用程序一次只能有一个PRIMARY选择,这就是当您在两个列表框之间单击时突出显示消失的原因。
Tkinter使您可以使用列表框的exportselection
配置选项(以及文本和条目小部件)来控制此行为。将其设置为False
会阻止将选择内容导出到X选择,从而允许窗口小部件在其他窗口小部件获得焦点时保留其选择。
例如:
the_listbox = tk.Listbox(..., exportselection=False)
<强> exportselection 强> 指定窗口小部件中的选择是否也应该是 X选择。该值可以具有接受的任何形式 Tcl_GetBoolean,例如true,false,0,1,yes或no。如果 导出选择,然后在窗口小部件中选择取消选择 当前X选择,在窗口小部件外选择取消选择任何窗口小部件 选择,小部件将响应选择检索请求 什么时候有选择。默认情况下通常用于导出窗口小部件 选择。