我无法弄清楚如何让tkinter将checkbuttons和radiobutton放在一起。即使指定pady = 0,它似乎有效也无效。按钮之间的垂直距离不自然地大,丑陋,只是浪费空间。为了使一组按钮显示为与其他控件分开的组,需要在其他地方添加额外的空间,这些空间就会失控。
这是我提取的一个工作示例:
from Tkinter import *
def rbtest(frame):
group = LabelFrame( frame, text="Target", padx=0, pady=0)
btnVal = StringVar(frame,' ')
for b in ( "option1", "another option", "Someth Else", "go away"):
rb=Radiobutton( group, text=b, value=b, variable=btnVal)
rb.pack( anchor=W, pady=2)
boardname = StringVar()
Label( group, text="Name").pack( anchor=W)
Entry( group, text=boardname).pack()
group.pack( side=LEFT, fill=Y, padx=0, pady=0)
tk = Tk()
rbtest(tk)
tk.mainloop()
[好吧,我不能发布一张图片来展示它产生的东西因为我没有足够的声誉,所以很抱歉......我试过了。]
编辑:我使用的是Python 2.6.6和Windows 7.
考虑到它包含其他元素的紧密程度,我很惊讶这是正常的行为,但我在网络上发现的所有例子看起来都很相似......
答案 0 :(得分:3)
我在Mac和Windows机器上运行你的代码,在这两种情况下,它看起来都适合我。如果您希望它们尽可能接近,请将borderwidth
设置为零,将pady
选项设置为零。
要在每个按钮之间另外输出两个像素,请将highlightthickness
设置为零,但这会影响用户在使用键盘遍历时的体验。
答案 1 :(得分:0)
对我而言看起来很正常:
如果真的需要超级紧凑,有办法,但我怀疑你的系统正在以不同的方式渲染窗口。