将小部件放在窗口上(使用tkinter)

时间:2013-08-03 14:29:51

标签: python linux ubuntu user-interface tkinter

我正在尝试使用tkinter库为我的程序创建界面。

我的界面应该像这样显示

BUTTON1

BUTTON2

BUTTON3

B.pack(side = "left", padx = 00, pady = 0)
C.pack(side = "left", padx = 100, pady = 100)
D.pack(side = "left", padx = 50, pady = 120)

我已经尝试更改padx和pady的参数, 但它仍然出现在同一行。我正在使用ubuntu 13.04 OS

如何设置参数以获得所需的格式

提前致谢.. :))

1 个答案:

答案 0 :(得分:1)

您可以通过三个简单步骤解决问题。首先,删除所有padx因为它们使按钮不对齐。其次,使用anchor = "w"使按钮左对齐。第三,将side设置为"top",以便按钮垂直放置而不是水平放置。 (但是,由于side默认为“top”,因此您可以完全删除它。以下是固定脚本:

from Tkinter import Tk, Button

root = Tk()

B = Button(root, text="BUTTON1")
C = Button(root, text="BUTTON2")
D = Button(root, text="BUTTON3")

B.pack(anchor = "w", pady = 0)
C.pack(anchor = "w", pady = 100)
D.pack(anchor = "w", pady = 120)

root.mainloop()

另一种方法是使用grid方法而不是pack

from Tkinter import Tk, Button, W

root = Tk()

B = Button(root, text="BUTTON1")
C = Button(root, text="BUTTON2")
D = Button(root, text="BUTTON3")

# 'row' sets the row number that the widget is placed on
# 'sticky' is the same as 'anchor'
B.grid(row=0, pady=0, sticky=W)
C.grid(row=1, pady=100, sticky=W)
D.grid(row=2, pady=120, sticky=W)

root.mainloop()

虽然我个人更喜欢grid而不是pack,但这个决定只是一个偏好问题。