python-3.x - 无法在 Tkinter 中移动小部件

标签 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()

我也希望能够使用网格。 任何建议都将受到赞赏。谢谢你!

最佳答案

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

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

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

使用 .pack() 函数可以让您移动按钮,而无需窗口中的任何其他按钮。

如果您添加了另一个按钮,您将能够在三个不同的位置移动第一个按钮。

请注意,您不能在同一窗口中使用 .pack().grid() 函数。

关于python-3.x - 无法在 Tkinter 中移动小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47296642/

相关文章:

python - 通用或pythonic __repr__ 方法

Python返回最近30天的数据

python-3.x - 使用 python 控制 minecraft 服务器

Python - Tkinter - 有趣的 place()

python - tkinter 中的 Tcl 错误

python - 无法在 python :3. 4 docker 容器中导入 lxml

python - Odoo 11 开发者菜单中的 "Fields view get"选项是什么?

python-3.x - 如何在 tkinter Python 中扩展顶级窗口?

python - 在 OS X 上安装 python 2 的最佳方法是什么?

Python Tkinter : Listbox mouse enter event for a specific entry