我是新的使用Tkinter
,我正在制作一个非常简单的GUI。来自JavaFX背景,我发现它有点令人困惑,因为我无法将我的按钮位置放在坐标上。布局 - Tkinter - 将按钮组合在一起
这是我的实际代码:
class MoveRobot(Frame):
grid_counter = 0
def __init__(self):
Frame.__init__(self)
self.master.title("Control Robot")
self.master.geometry("400x400")
self.master.rowconfigure(0, weight=1)
self.master.columnconfigure(0, weight=1)
self.grid(sticky=W + E + N + S)
self.list_box = Listbox(self)
self.list_box.grid(rowspan=4, sticky=W + E + N + S)
self.button1 = Button(self, text="UP", command=self.button_up)
self.button1.grid(row=0, column=1, columnspan=2, sticky=W + E + N + S)
self.button2 = Button(self, text="DOWN", command=self.button_down)
self.button2.grid(row=1, column=1, columnspan=2, sticky=W + E + N + S)
self.button3 = Button(self, text="LEFT", command=self.button_left)
self.button3.grid(row=2, column=1, columnspan=2, sticky=W + E + N + S)
self.button4 = Button(self, text="RIGHT", command=self.button_right)
self.button4.grid(row=3, column=1, columnspan=2, sticky=W + E + N + S)
self.button_cancel = Button(self, text="Remove Last", command=self.button_remove_last)
self.button_cancel.grid(row=4, columnspan=2, sticky=W + E + N + S)
self.button_cancel = Button(self, text="Clear", command=self.button_clear)
self.button_cancel.grid(row=5, columnspan=2, sticky=W + E + N + S)
self.button_compile = Button(self, text="Compile", command=self.button_compile)
self.button_compile.grid(row=6, columnspan=2, sticky=W + E + N + S)
self.rowconfigure(1, weight=1)
self.columnconfigure(1, weight=1)
#controller code is removed because unnecessary
def main():
MoveRobot().mainloop()
if __name__ == "__main__":
main()
,下面将我的GUI创建的。
但是,我不能管理粘按钮“向上”,“向下”,“左”和“右”到一起。我试图查看论坛和网站,但我找不到解决方案。它应该是非常简单的,因为它只是一个布局问题。
我想应该是这样的输出..
任何人能帮助我们吗?我希望这个问题对其他人也有好处,因为我不知道如何使用Tkinter,我无法通过网络找到解决方案。
预先感谢您。
你的第一个句子没有任何意义。在这种情况下给列表框设置一个明确的高度不会产生任何效果(除非设置为非常小的数字)。此外,weight_not_“告诉tkinter扩展一个单位”。我不知道在这种情况下你认为“单元”是什么,但重量只是告诉tkinter如何在小部件中分配额外的空间。 –
你是对的@BryanOakley,它不扩展任何特定的单位,我不清楚 – EriktheRed
@BryanOakley然而,我支持我说的明确的高度。鉴于列表框比需要在布局中更高(请参阅我的ascii),tkinter会缩小它,除非告诉它必须有多大......可能有其他解决方法,但这似乎是最简单的我,它在我做过的一些测试中工作 – EriktheRed