我在单选模式下设置了2个单独的列表框.当我从中选择一个项目时listboxA
,它会突出显示,但是当我从中选择一个项目时listboxB
,它会突出显示,并且该项目listboxA
保持活动状态,但不会突出显示.如何突出显示两者?
Bry*_*ley 27
简答:将exportselection
每个列表框的属性设置为False
Tkinter源于X窗口系统.X有一个称为"选择"的概念,它类似于系统剪贴板(更准确地说,剪贴板是"主要"选择).默认情况下,几个tkinter小部件将其选择导出为PRIMARY选择.应用程序一次只能有一个PRIMARY选择,这就是当您在两个列表框之间单击时突出显示消失的原因.
Tkinter使您exportselection
可以使用列表框(以及文本和条目小部件)的配置选项来控制此行为.将其设置为False
阻止将选择导出到X选择,允许窗口小部件在其他窗口小部件获得焦点时保留其选择.
例如:
the_listbox = tk.Listbox(..., exportselection=False)
Run Code Online (Sandbox Code Playgroud)
引用官方tk文档:
exportselection 指定窗口小部件中的选择是否也应该是X选择.该值可以具有Tcl_GetBoolean接受的任何形式,例如true,false,0,1,yes或no.如果导出选择,则在窗口小部件中选择取消选择当前的X选择,在窗口小部件外部选择取消选择任何窗口小部件选择,窗口小部件将在选择时响应选择检索请求.默认情况下,窗口小部件通常用于导出选择.