我正在尝试学习 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()
我也希望能够使用网格。 任何建议都将受到赞赏。谢谢你!
最佳答案
无法移动按钮的原因是因为您只有一个元素。
quitbttn.grid(row=3, column=5)
脚本的这一部分基本上是说按钮应该放置在第三行下方的第五个空格中。由于窗口中没有其他元素,因此它根本不会移动按钮。这是因为所有 2 行 4 列都等于 0,所以它打包的第一个位置是在左上角。
使用 .pack()
函数可以让您移动按钮,而无需窗口中的任何其他按钮。
如果您添加了另一个按钮,您将能够在三个不同的位置移动第一个按钮。
请注意,您不能在同一窗口中使用 .pack()
和 .grid()
函数。
关于python-3.x - 无法在 Tkinter 中移动小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47296642/