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

时间:2018-09-18 22:17:33

标签: python tkinter listbox border

这是一个小问题,但是我在整个下午一直苦苦挣扎,却一无所获,所以去了。我将要编写一个Python脚本,该脚本需要使用ScrolledListBox()。以前从未使用过它,所以我从实验脚本开始,在那里我可以玩它并熟悉它。现在,我有了脚本,可以在其中双击项目,然后在处理程序中将所选项目正确打印到stdout。但是,我注意到,通过单击或双击选择该项目时,列表中该项目周围会出现一个矩形边框,并一直保留到选择另一个项目为止。我一直在尝试是否有办法摆脱这个边界,但到目前为止还无法做到这一点。这是我尝试过的:

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,所以希望我缺少一些有更多经验的人知道的东西。关于如何摆脱边界的任何想法?

谢谢, 戴夫

1 个答案:

答案 0 :(得分:1)

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

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