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
TextBoxTo
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()