设置在Python中的按钮的位置?(Setting the position on a button

2019-06-25 07:02发布

我只写了创建(使用使用TKinter)窗口,并显示一个工作按钮的代码。

b = Button(master, text="get", width=10, command=callback)

但我想有这样一个下多个按钮。

如何设置按钮的行和列? 我试图添加row = 0, column = 0,但是这是行不通的。

谢谢

Answer 1:

astynax是正确的。 跟着你给的例子:

MyButton1 = Button(master, text="BUTTON1", width=10, command=callback)
MyButton1.grid(row=0, column=0)

MyButton2 = Button(master, text="BUTTON2", width=10, command=callback)
MyButton2.grid(row=1, column=0)

MyButton3 = Button(master, text="BUTTON3", width=10, command=callback)
MyButton3.grid(row=2, column=0)

应该创造3排按钮。 使用网格是比使用包好了很多。 但是,如果你在另一个上的一个按钮,并使用包网格,它不会工作,你会得到一个错误。



Answer 2:

导致部件出现要求你什么Tkinter的所谓的“几何经理人”使用定位。 这三个经理都格 , 包和地点 。 每个人都有长处和短处。 这三个经理都实现为所有小工具的方法。

,顾名思义,是非常适合在网格铺设的小部件。 您可以指定行和列,在行与列跨度,填充等。

例:

b = Button(...)
b.grid(row=2, column=3, columnspan=2)

包装采用箱的比喻,让你“包”的小部件沿着容器的一个侧面。 包装非常好,在所有垂直或全部水平布局。 工具栏,例如,在小部件在一个水平线上排列,是使用包装的好地方。

例:

b = Button(...)
b.pack(side="top", fill='both', expand=True, padx=4, pady=4)`

地方是最少使用几何管理器。 随着地方,你指定一个插件的确切的x / y位置和详细的宽度/高度。 它有一些很好的特性,例如能够使用绝对或相对坐标(例如:可以在10,10放置一个小窗口,或在窗口小部件的50%的宽度或高度)。

gridpack ,使用place不会导致父控件可以展开或折叠,以适应所有已置于其内的小部件。

例:

b = Button(...)
b.place(relx=.5, rely=.5, anchor="c")

随着这三个几何管理者,你可以做几乎任何类型的布局,你可以想像。



Answer 3:

尝试网格几何经理 :

btns = [
    (lambda ctl: ctl.grid(row=r, column=c) or ctl)(
        Button(text=str(1 + r * 3 + c)))
    for c in (0,1,2) for r in (0,1,2)]

结果:

[1][2][3]
[4][5][6]
[7][8][9]


文章来源: Setting the position on a button in Python?