tkinter在支票按钮之间放置太多空间

时间:2013-09-24 21:49:51

标签: python user-interface tkinter

我无法弄清楚如何让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.

考虑到它包含其他元素的紧密程度,我很惊讶这是正常的行为,但我在网络上发现的所有例子看起来都很相似......

2 个答案:

答案 0 :(得分:3)

我在Mac和Windows机器上运行你的代码,在这两种情况下,它看起来都适合我。如果您希望它们尽可能接近,请将borderwidth设置为零,将pady选项设置为零。

要在每个按钮之间另外输出两个像素,请将highlightthickness设置为零,但这会影响用户在使用键盘遍历时的体验。

答案 1 :(得分:0)

对我而言看起来很正常:

screenshot of window

如果真的需要超级紧凑,有办法,但我怀疑你的系统正在以不同的方式渲染窗口。