1

我不知道如何让 tkinter 将检查按钮和单选按钮放在一起。即使在任何看起来有效的地方指定 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。

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

4

2 回答 2

4

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

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

于 2013-09-24T22:27:47.660 回答
0

对我来说这看起来很正常:

窗口截图

如果它真的需要变得超级紧凑,有办法做到这一点,但我怀疑你的系统正在以不同的方式呈现窗口。

于 2013-09-25T00:00:57.607 回答