Python 2.7 Tkinter电网管理器切断按钮

Python 2.7 Tkinter电网管理器切断按钮,python-2.7,tkinter,Python 2.7,Tkinter,我的布局如下: btnReset = Button(self.upperButtonFrame, text = "Reset", width = 12, command=self.__parent.reset) btnReset.grid(row=0, column=0, sticky="W", pady=5) btnRender = Button(self.upperButtonFrame, text = "Render", width = 9, command = s

我的布局如下:

    btnReset = Button(self.upperButtonFrame, text = "Reset", width = 12, command=self.__parent.reset)
    btnReset.grid(row=0, column=0, sticky="W", pady=5)
    btnRender = Button(self.upperButtonFrame, text = "Render", width = 9, command = self.render)
    btnRender.grid(row=0, column=1, pady=5)

    self.bScattered = Radiobutton(self.upperButtonFrame, text="Backscattered", variable=self.plotType, value=1).grid(row=1, column=0, sticky="W")
    self.depolarized = Radiobutton(self.upperButtonFrame, text="Depolarized", variable=self.plotType, value=2).grid(row=2, column=0, sticky="W")

    self.rng = Label(self.upperButtonFrame, text="Step").grid(row=3, column=0, sticky="W")
    self.e = Entry(self.upperButtonFrame).grid(row=3,column=1)
    self.to = Label(self.upperButtonFrame, text="to").grid(row=3, column=2)
    self.e2 = Entry(self.upperButtonFrame).grid(row=3,column=3)
问题是我的第三排看起来像:

而不是平均间隔的4个小部件,我试图放置。如何修复grid manager切断最后两个并在屏幕上均匀分布的问题

编辑:这是我的问题的一个最小的例子,运行它应该重现上面显示的结果



下面发布的稍加修改的程序正确呈现,因此一定是您未发布的代码中的某些内容导致了问题。是否在任何地方限制根窗口几何体的大小?我不知道你所说的“等距”是什么意思,但是你可以在大多数小部件上使用宽度参数来增加大小

from Tkinter import *

class TestIt(object):
    def __init__(self, top):
        self.upperButtonFrame=top
        btnReset = Button(self.upperButtonFrame, text = "Reset", width = 12)
        btnReset.grid(row=0, column=0, sticky="W", pady=5)
        btnRender = Button(self.upperButtonFrame, text = "Render", width = 9)
        btnRender.grid(row=0, column=1, pady=5)

        self.bScattered = Radiobutton(self.upperButtonFrame, text="Backscattered").grid(row=1, column=0
        self.depolarized = Radiobutton(self.upperButtonFrame, text="Depolarized").grid(row=2, column=0,

        self.rng = Label(self.upperButtonFrame, text="Step").grid(row=3, column=0, sticky="e")
        self.e = Entry(self.upperButtonFrame).grid(row=3,column=1)
        self.to = Label(self.upperButtonFrame, text="to").grid(row=3,   column=2, sticky="e")
        self.e2 = Entry(self.upperButtonFrame).grid(row=3,column=3)

top = Tk()
TI=TestIt(top)
top.mainloop()

当你说“间隔4个小部件”时,你指的是哪4个?我在截图中看到6个,不算帧。你认为第三排是什么?带有“Rest”和“Render”的那一行是第一行吗?@Bryan Oakley那是因为其中两行被切断了。它应该显示
Step
TextBox
To
TextBox您是否强制将包含的小部件设置为特定大小?在某种程度上,tkinter别无选择,只能将小部件切掉——它不会将它们缩小到最小尺寸以下。你能不能提供一个简短完整的程序,我们可以运行,显示被切断的小部件?我的猜测是,有更多的代码没有显示给我们,这是造成问题的原因。请不要发布所有代码。取而代之的是,尝试创建一个显示相同问题的新程序。我强制小部件达到一定的大小。有没有办法确保框架适应恒定的大小,这样我就可以打包网格,而不需要将“步骤”和“输入”框放得太远?有很多解决方案,但是如果你强迫框架太小,你就必须允许框架变大。如果不了解更多的布局,就不可能给出更好的建议。Tkinter不会将小部件缩小到其自然大小以下(除非您特别要求),因此您需要将小部件缩小或容器增大。我上传了一个简单的示例来说明我的问题,看到有什么问题吗?
from Tkinter import *

class TestIt(object):
    def __init__(self, top):
        self.upperButtonFrame=top
        btnReset = Button(self.upperButtonFrame, text = "Reset", width = 12)
        btnReset.grid(row=0, column=0, sticky="W", pady=5)
        btnRender = Button(self.upperButtonFrame, text = "Render", width = 9)
        btnRender.grid(row=0, column=1, pady=5)

        self.bScattered = Radiobutton(self.upperButtonFrame, text="Backscattered").grid(row=1, column=0
        self.depolarized = Radiobutton(self.upperButtonFrame, text="Depolarized").grid(row=2, column=0,

        self.rng = Label(self.upperButtonFrame, text="Step").grid(row=3, column=0, sticky="e")
        self.e = Entry(self.upperButtonFrame).grid(row=3,column=1)
        self.to = Label(self.upperButtonFrame, text="to").grid(row=3,   column=2, sticky="e")
        self.e2 = Entry(self.upperButtonFrame).grid(row=3,column=3)

top = Tk()
TI=TestIt(top)
top.mainloop()