无法在Tkinter中移动小部件

时间:2017-11-14 22:56:40

标签: python-3.x tkinter

我正在努力学习tkinter,但是我遇到了一个问题,我无法从这一点开始。我想用一个按钮做一个简单的GUI,不幸的是,我无法移动那个按钮(总是显示在最左上角)。

这是我使用的代码:

class App(Frame):
def __init__(self, master=None):
    Frame.__init__(self, master)
    self.grid()
    self.master.title('GUI')
    quitbttn = Button(self, text='quit')
    quitbttn.grid(row=3, column=5)

root = Tk()
app = App(root)
app.mainloop()

虽然,我在iternet上找到了这段代码,并且它运行正常但唯一的区别是使用了pack()而不是grid()

class Window(Frame):
def __init__(self, master=None):
    Frame.__init__(self, master)
    self.master = master
    self.init_window()
def init_window(self):
    self.master.title("GUI")
    self.pack(fill=BOTH, expand=1)
    quit_button = Button(self, text='quit')
    quit_button.pack(side=BOTTOM)



root = Tk()
app = Window(root)
root.mainloop()

我希望能够使用网格。 任何建议都是贬值的。谢谢!

1 个答案:

答案 0 :(得分:1)

您无法移动按钮的原因是因为您只有一个元素。

quitbttn.grid(row=3, column=5)

这部分脚本基本上说按钮应该放在第三行和第五行空间中。由于窗口中没有其他元素,因此根本不会移动按钮。这是因为所有2行和4列都等于0所以它包装的第一个位置在左上角。

使用.pack()功能可以在不需要窗口中任何其他按钮的情况下移动按钮。

如果您添加了另一个按钮,则可以在三个不同的位置移动第一个按钮。

请注意,您无法在同一窗口中使用.pack().grid()功能。