简短答案:将
exportselection每个列表框的属性设置为
False
Tkinter起源于X窗口系统。X有一个称为“选择”的概念,类似于系统剪贴板(更准确地说,剪贴板是“
PRIMARY”选择)。默认情况下,几个tkinter小部件会将其选择导出为PRIMARY选择。一个应用程序一次只能选择一个PRIMARY,这就是为什么当您在两个列表框之间单击时高亮显示消失的原因。
Tkinter使您
exportselection可以使用列表框(以及文本和条目小部件)的配置选项来控制此行为。将其设置为
False阻止将选择导出到X选择,从而允许小部件在其他小部件获得焦点时保留其选择。
例如:
the_listbox = tk.Listbox(..., exportselection=False)
引用官方tk文档:
exportselection
指定小部件中的选择是否也应为X选择。该值可以具有Tcl_GetBoolean接受的任何形式,例如true,false,0、1,yes或no。如果已导出选择,则在窗口小部件中进行选择会取消选择当前的X选择,在窗口小部件外部进行选择会取消选择任何窗口小部件选择,并且窗口小部件具有选择时将响应选择检索请求。通常,小部件的默认设置是导出选择。



