问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PythonTkinter布局管理器之Pack布局管理器详解

发布网友 发布时间: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布局管理器适合的场景

将小型组件放入窗口中,并使其充满这个窗口

将小型组件放在顶部

并排放置多个组件

只适合简单的垂直或者水平排列

2.Pack常用属性属性作用side指定停靠方向,可选值:left,top,right,bottomfill指定填充颜色,可选值:x(水平方向填充),y(竖直方向填充),both(水平和竖直方向填充),none:不填充expand是否可展空间,可选值True/Falseanchor锚定位,指定组件的位置,可选值:N(北/下),E(东/右),S(南/下),W(西/左),CENTER(中间)padxx方向的外边距padyy方向的外边距iPadxx方向的内边距ipadyy方向的内边距

?重要说明:

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布局管理器详解

作者:盆友圈的小可爱
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医保专线如何网络连接 医保专线为什么不能网络连接 小米椒是什么 生蚝的营养价值如何?怎么吃? 公文写作请示的范文 犯欺诈发行股票、债券罪会判多久 微信视频号开通粉丝团方法步骤 视频号如何开通粉丝团 微信视频号如何加入粉丝团和群聊? 没有经过当地武装部当武警的人国家军队承认吗 要走兵时市武装部发现我有点小毛病拉着我去查体我可不可以拒绝不去_百... 我举报了武装部会是什么后果 [急]CAD打开图形显示不全 《走遍中国》 20120829 百集系列片·中国古镇(10) 镇远——水舞端阳... iPad内屏翘板掉了还能装上吗 笔记本电脑开机怎么不显示硬盘啊? 电脑上的硬盘怎么没显示出来啊? 复产复工工作方案 相机机械快门和电子快门有何区别? 机械快门和电子快门速度哪一个快 你是李华,你和爸妈寒假去了北京旅游,游览了许多名盛。如故宫,长城... 假如你是李华上周末你和家人参观了北京的颐和园请根据提示你� 采用的近义词和反义词是什么_采用是什么意思? 采用 是什么意思 林州市亚欣时代百货商贸有限公司怎么样? 梦见被一股大水压着在床上 2011年07月14(阴历)13点02分出生,男孩姓赵,属什么命,需补什么,应... ?各执己见什么意思?出处是哪里? 孩子青春期骂父母怎么办 牙痛脸肿是怎么回事 ...所有人都在说你,都在指指点点的,是看你好欺负吗? ad转换时外部的基准电压的问题 农行审批贷款3个多星期了还没审批完正常吗 宝马3系感应不到钥匙 烤箱空置时间长了一用就跳闸怎么回事 五千年前的电烤箱能用吗 不知道大家第一次买烤箱都会比较注意什么呢,详细多方面考虑哦谢谢啊... 惩罚孩子的10个科学方法 孩子叛逆怎么办10种教育方法 10种不负责任的育儿方法! 吃完鸡蛋要多久才能喝茶 股票前面sd是什么 股票sd表示什么 股票SD指什么 sd股票是什么股票 山紫水明处——行走的日本通史(二):平安时代(公元794年~公元1192年... 我家小狗好几个月了,肚子上有几个小疙瘩总氧,每次氧的时候它总添,添... 小太阳取暖器有辐射吗 小太阳取暖器对身体有伤害吗 我家的狗狗,现在才一个多月!今天发现他肚子上有个肉疙瘩、把我吓坏了... 我家的小狗有几个月了.最近几天总是不吃不喝 还又拉有吐 肚子下边还长... 1987年6月属兔是什么命什么星座,1987年属兔6月是什么命运 乾隆自愿退位,为何却仍将权利掌握在自己手里呢?