Python Tkinter包布局管理器

  

Python Tkinter包布局管理器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

GUI编程就相当于小孩子搭积木,每个积木块应该放在哪里,每个积木块显示为多大,也就是对大小和位置都需要进行管理,而布局管理器正是负责管理各组件的大小和位置的。此外,当用户调整了窗口的大小之后,布局管理器还会自动调整窗口中各组件的大小和位置。

如果使用包布的局,那么当程序向容器中添加组件时,这些组件会依次向后排列,排列方向既可是水平的,也可是垂直的。

下面程序简单示范了包布局的用法,该程序向窗口中添加了三个标签组件:

# Python 2. x使用这行   #从Tkinter导入*   # Python 3. x使用这行   从tkinter进口*      #创建窗口并设置窗口标题   根=Tk ()   #设置窗口标题   root.title(& # 39;包布局& # 39;)   因为我在范围(3):   实验室=标签(根、文本=暗? d个Label"% (i + 1), bg=& # 39; #继续# 39;)   #调用包进行布的局   lab.pack ()   #启动主窗口的消息循环   root.mainloop ()

上面程序创建了一个窗口,然后使用循环创建了三个标签,并对这三个标签使用了包()方法进行默认的包布的局。运行该程序看到如图所示的界面:

 Python Tkinter包布局管理器

上图图使用的是默认的包布的局,实际上程序在调用包()方法时可传入多个选项,例如,通过,帮助(tkinter.Label.pack),命令来查看包()方法支持的选项,可以看到如下输出结果:

在祝辞祝辞帮助(tkinter.Label.pack)   帮助> # Python 2. x使用这行   #从Tkinter导入*   # Python 3. x使用这行   从tkinter进口*   类应用:   def __init__(自我,掌握):   自我。主=主   self.initWidgets ()   def initWidgets(自我):   #创建第一个容器   fm1=框架(self.master)   #该容器放在左边排列   fm1。包(=左,填补=,=YES扩张)   #向fm1中添加3个按钮   #设置按钮从顶部开始排列,且按钮只能在垂直(X)方向填充   按钮(fm1,文本=& # 39;第一个& # 39;)。包(一边=,=X,扩大=是的)   按钮(fm1,文本=& # 39;第二个& # 39;)。包(一边=,=X,扩大=是的)   按钮(fm1,文本=& # 39;第三个& # 39;)。包(一边=,=X,扩大=是的)   #创建第二个容器   fm2=框架(self.master)   #该容器放在左边排列,就会挨着fm1   fm2。包(=左,padx=10,扩大=是的)   fm2。包(=左,padx=10,填补=,=YES扩张)   #向fm2中添加3个按钮   #设置按钮从右边开始排列   按钮(fm2文本=& # 39;第一个& # 39;)。包(一边=,=Y,扩大=是的)   按钮(fm2文本=& # 39;第二个& # 39;)。包(一边=,=Y,扩大=是的)   按钮(fm2文本=& # 39;第三个& # 39;)。包(一边=,=Y,扩大=是的)   #创建第三个容器   fm3=框架(self.master)   #该容器放在右边排列,就会挨着fm1   fm3。包(=正确,padx=10,填补=,=YES扩张)   #向fm3中添加3个按钮   #设置按钮从底部开始排列,且按钮只能在垂直(Y)方向填充   按钮(fm3文本=& # 39;第一个& # 39;)。包(=底部,填补=Y,扩大=是的)   按钮(fm3文本=& # 39;第二个& # 39;)。包(=底部,填补=Y,扩大=是的)   按钮(fm3文本=& # 39;第三个& # 39;)。包(=底部,填补=Y,扩大=是的)   根=Tk ()   root.title(“包布局“)   显示=应用(根)   root.mainloop ()

上面程序创建了三个框架容器,其中第一个帧容器内包含三个从顶部(上)开始排列的按钮,这意味着这三个按钮会从上到下依次排列,且这三个按钮能在水平(X)方向上填充;第二个框容器内包含三个从右边(右)开始排列的按钮,这意味着这三个按钮会从右向左依次排列,第三个框架容器内包含三个从底部(底部)开始排列的按钮,这意味着这三个按钮会从下到上依次排列,且这三个按钮能在垂直(Y)方向上填充。

运行上面程序,将看到如下图所示的界面。

从上图中可以看的到,为运行效果添加了三个框,分别代表fm1, fm2, fm3(实际上容器是看不到的),此时可以看到fm1内的三个按钮从上到下排列,并且可以在水平方向上填充;fm3内的三个按钮从下到上排列,并且可以在垂直方向上填充。

可能有读者会有疑问,fm2内的三个按钮也都设置了填补=Y,扩大=是的,这说明它们也能在垂直方向上填充,为啥舍看不到呢?仔细看fm2。包(=左,padx=10,扩大=YES)这行代码,它说明fm2本身不在任何方向上填充,因此fm2内的三个按钮都不能填充。

Python Tkinter包布局管理器