这是一个小问题,但是我在整个下午一直苦苦挣扎,却一无所获,所以去了。我将要编写一个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,所以希望我缺少一些有更多经验的人知道的东西。关于如何摆脱边界的任何想法?
谢谢, 戴夫
答案 0 :(得分:1)
documentation by New Mexico Tech(在使用Tkinter时可以作为很好的参考)列出了Listbox
小部件的属性,其中包括activestyle
。此参数是指当前活动(不一定选中)项周围的框,并且可以采用值underline
,dotbox
和none
。
如果将activestyle
设置为none
,则虚线边框将消失。