发布网友 发布时间:2024-10-11 11:14
共1个回答
热心网友 时间:2024-10-22 16:40
复习回顾PythonTkinter不仅提供多样的组件,还提供管理组件的布局管理器,主要有三种如下:
本期我们将学习另外一种使用更加简单的布局管理器Pack,相关属性和使用方法的学习
?搓搓双手,打起精神,开启我们今天的学习,Let'sgo~
1.Pack布局管理器概述Pack布局管理器是Tkinter提供的管理一个主窗口的组件布局的方法,可创建浮动,自动伸缩扩展在少量组件的排列上使用Pack布局管理器会更加简单方便。
Pack布局管理器特点
Pack按照组件的创建顺序将子组件添加到父组件中,按照垂直或者水平方向自然排布。
Pack如果不指定任何选项,默认在父组件中自顶向下添加组件
Pack是代码量最少,可以用于快速生成界面
Pack布局管理器适合的场景
将小型组件放入窗口中,并使其充满这个窗口
将小型组件放在顶部
并排放置多个组件
只适合简单的垂直或者水平排列
?重要说明:
side是pack方法最常用属性,side为TOP时示例图如下所示
side为LEFT时示例图如下所示
组件独占空间
组件所在的位置,会根据位置来占据主窗口可用空间的整行或者整列空间
side=TOP/BOTTOM
(1)组件会占据整行
(2)后续组件只能依次排在其下面或者上面
(3)组件为上下排列方式
side=LEFT/RIGHT
(1)组件会占据整列
(2)后续组件只能依次排其左边或者右边
(3)组件为左右排列方式
3.小试牛刀Pack布局管理器练习效果如下:
如上效果图所示,有两个Fream容器组成,分别创建两个容器f1,f2,分别垂直排列
f1=Frame(self)f1.pack()f2=Frame(self)f2.pack()Frame1容器里横向排了五个按键
btlist=("popular","chinese","Japanse","Hiap","soft")fortxtinbtlist:Button(f1,text=txt).pack(side=LEFT,padx="10")五个按键存在列表里
使用for循环分别创建5个Button对象
Button对象主窗口使用f1
Fream2容器装黑白相间的Label组件
btlist=("popular","chinese","Japanse","Hiap","soft")fortxtinbtlist:Button(f1,text=txt).pack(side=LEFT,padx="10")Label主主窗口为f2
使用for循环创建20个Label对象
Label背景颜色使用ifelse语句来控制
使用GUI面向对象编程写法,使用Application(Frame)来创建实例对象,创建组件的方法封装给createWidgetPack()方法,通过构造函数创建好组件
完整代码如下:
fromtkinterimport*importrandomclassApplication(Frame):def__init__(self,master=None):#super()代表的是父类的定义,而不是父类对象super().__init__(master)self.master=masterself.pack()self.CreateWidgetpack()defCreateWidgetpack(self):f1=Frame(self)f1.pack()f2=Frame(self)f2.pack()btlist=("popular","chinese","Japanse","Hiap","soft")fortxtinbtlist:Button(f1,text=txt).pack(side=LEFT,padx="10")foriinrange(1,20):Label(f2,width=5,height=10,borderwidth=1,relief="solid",bg="black"ifi%2==0else"white").pack(side="left",padx=2)root=Tk()root.title("MyfirstAPP")app=Application(master=root)root.mainloop()总结本期,我们学习PythonTkinter布局管理器Pack
Pack布局管理器对于简单小组件能快速实现排布效果。
以上是本期内容,欢迎大佬们点赞评论指正,下次见~?(????`)比心??
推荐阅读PythonTkinter布局管理器之Grid布局管理器详解
PythonTkinter布局管理器之Place布局管理器详解
作者:盆友圈的小可爱