相同高度的Tkinter列表框和复选框

时间:2015-01-21 07:50:52

标签: python user-interface checkbox listbox tkinter

我有2个列表框彼此相邻,我尝试为这些列表框的每个条目创建一个复选框。不幸的是,我无法使复选框和列表框元素具有相同的高度/位于相同的位置,如下面的屏幕截图所示。enter image description here

你知道我怎么能修改它以使列表中的复选框类似(这在Tkinter afaik中是不可能的)? 对于我的列表框,我使用此代码段的自定义版本: https://stackoverflow.com/a/16056555/3429131

我希望我以一种可以理解的方式解释我的问题。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

如果在列表框中包含所有内容并非100%必要,那么您可以尝试使用网格或包显示数据,这样可以使它们正确对齐,网格可能会更好。

只需将其声明为:

master = Tk()
Model1 = Label(master, text="F45")
Part1 = Label(master, text="AUFN-BUCHSE")
Active1 = Checkbutton(master, variable=Var)

Model1.grid(row=0,column=0)
Part1.grid(row=0, column=1)
Active1.grid(row=0, column=2)

如果您想重复此操作,可以将模型和零件部分从文件中拉出,然后创建一个for loop,创建一个包含标签的list。 然后,您可以使用for loop对标签进行网格化,如下所示:

for Counter1 in range(0, NumberOfRows)
    Model[Counter1].grid(row=Counter1, column=0)
    Part[Counter1].grid(row=Counter1, column=1)
    Checkbutton.grid(row=Counter1, column=2)

有些事情,只需要做一些调整,其中Model[]类似于[F45, F46, F47...]Part[] [AUFN-BUCHSE, AUFN-BUCHSE-BOLZEN...] 再一次,您可能需要稍微调整一下我的代码,不确定它是否符合您的要求,但所有这些都取决于列表框是否完全必要。 如果你想在gird方法上阅读更多内容,请查看: http://effbot.org/tkinterbook/grid.htm