按钮包装在python 3.6框架中

时间:2017-02-27 17:26:52

标签: python tkinter python-3.6

实际上我真的很抓我的头,我很简单,我想在一个tkinter框架中打包一个按钮,但问题是我只看到框架,当我不打包在其中的按钮我打包按钮,我只看到按钮......

from tkinter import *

root = Tk()
frame = Frame(root,bg ='yellow')
frame.pack()

bottomframe = Frame(root,bg = 'red')
bottomframe.pack( side = BOTTOM )

redbutton = Button(frame, text = "Red", fg = "red")
redbutton.pack( side = LEFT)

blackbutton = Button(bottomframe, text = "Black", fg = "black")
blackbutton.pack( side = BOTTOM)

root.mainloop()

这是正确显示我的两个按钮而不是框架,我知道因为我看不到颜色,我必须做一些愚蠢和错误或不知道我不知道,无论如何帮助将不胜感激,谢谢并继续编码!

1 个答案:

答案 0 :(得分:0)

框架(实际上,所有小部件)都旨在缩小或扩展以适应其内容。如果一个框架没有子框架,它仍然是配置的大小,但如果你添加子框架,它将缩小或增长到适合,除非它受到其父框架的约束。

假设您希望frame占用大部分空间,并且bottomframe是底部的按钮条,则需要向pack提供正确的参数以使其成为可能发生。

例如:

frame.pack(fill="both", expand=True)
bottomframe.pack( side = BOTTOM, fill="x")

fill用于控制窗口小部件如何适应给定的空间。通过将值设置为“both”,它指示tkinter使框架在x和y方向上填充其父级。使用值“x”表示仅在“x”方向上填充其空间。

expand用于控制如何分配额外空间。设置为True时,它会指示此窗口小部件展开以填充其父窗口中的任何剩余空间。设置为False时,不会占用任何额外空间。

使用pack时,您通常会将expand设置为True的一个小部件,但如果您想将父级分成两半,则通常会有两个小部件。