Python - 如何删除选定ListBox项目周围的边框?

问题描述 投票:0回答:1

这是一个小问题,但我一直在下午的大部分时间都在苦苦挣扎,所以这里就是这样。我即将编写一个需要使用ScrolledListBox()的Python脚本。从来没有使用它,我开始用一个实验性的脚本,我可以玩它并熟悉它。我现在有脚本,我可以双击一个项目,并在处理程序中,正确打印所选项目到标准输出。但是,我注意到当选择项目时,无论是单击还是双击,列表中的项目周围都会出现一个矩形边框,并保持不变直到选中另一个项目。我一直试图看看是否有办法摆脱这个边界,但到目前为止一直无法这样做。这是我尝试过的:

1)感谢这个论坛中的另一篇文章,我发现keys()方法会给我一个窗口小部件的可用选项列表。因此,给定一个名为slb1的ScrolledListBox,我可以执行类似print(slb1.keys())的操作,并获得了我可以在窗口小部件上配置的所有内容的完整列表。其中一个是'selectborderwidth',所以我做了:slb1.configure(selectborderwidth = 0)认为这会删除边框。它没有。

2)接下来,我挖掘了我的“Python和Tkinter”副本并发现了selection_clear(first,last = None)方法。描述说明,“如果选择了第一个和最后一个(包括)之间的任何元素,则取消选择它们。”所以我尝试了处理程序中的slb1.selection_clear(0,None),但项目周围的矩形边框仍然存在。

我刚刚开始使用Python和Tkinter,所以希望我找不到有经验的人知道的东西。关于如何摆脱边界的任何想法?

谢谢,戴夫

python tkinter listbox border
1个回答
1
投票

使用Tkinter时,documentation by New Mexico Tech可以作为一个很好的参考,列出了Listbox小部件的属性,其中包括activestyle。此参数引用当前活动(不一定是选定的)项目周围的框,并且可以取值underlinedotboxnone

如果将activestyle设置为none,虚线边框将消失。

© www.soinside.com 2019 - 2024. All rights reserved.