原文来自FishC。

pack,grid,place均用于管理在一个父组件下的所有组件的布局,其中:

1)pack是按添加顺序排列组件

2)grid是按行/列形式排列组件

3)place则容忍我们指定组件的大小和位置

pack

对比grid管理器,pack更适用于少量组件的排列,但它在使用上更加简单;如需创建相对复杂的布局结构,则建议使用多个框架(frame)构成,或者使用grid来实现;

注意:不要在同一个父组件中混合使用pack,grid;

默认下,pack是将添加的组件依次纵向排列;如果想要组件横向排列,可以使用side选项:

Label(root,text='Blue',bg='blue',fg='white').pack(side=LEFT)
grid

灵活多变,使用一个grid就可以简单的实现使用多个框架和pack搭建起来的效果;

使用grid排列组件,只需告诉位置(row/column);默认情况下会居中显示在对应的网格中,可以使用sticky来修改这一特性,该选项可以使用的值有E,W,S,N(分别表示东南西北)以及它们的组合,如使label左对齐:

Label(root,text="User Name").grid(row=0,sticky=W)
Label(root,text="Password").grid(row=1,sticky=W)

如需几个网格来放置一个组件,可以指定rowspan,columnspan就可以实现跨行和跨列的功能,如:

photo=PhotoImage(file="log.gif")
Label(root,image=photo).grid(row=0,column=2,rowspan=2,padx=5,pady=5)

padx,pady分别指定水平,竖直方向的外边距。

place

通常情况下不建议使用place布局管理器,因为对比pack,grid,place要做更多的工作;

如将子组件显示在父组件的正中间:

Button(root,text="Click",command=callback).place(relx=0.5,rely=0.5,anchor=CENTER)

使用place可以实现一个组件覆盖另外一个组件,如Button覆盖Label组件:

photo=PhotoImage(file=logo_big.gif)
Label(root,image=photo).pack()Button(root,text="Click",command=callback).place(relx=0.5,rely=0.5,anchor=CENTER)

其中relx,rely选项是指定相对于父组件的位置,范围00~1.0,因此0.5表示位于正中间,relwidth,relheight则是相对于父组件的尺寸,如:

Label(root,bg='red').place(relx=0.5,rely=0.5,relheight=0.75,relwidth=0.75,anchor=CENTER)

上面改变窗口尺寸,Label的尺寸均会跟着改变;

x和y选项用于设置偏移(pixel),如果同时设置relx/rely和x/y,那么place将会先计算relx,rely,然后再实现x,y指定的偏移值。

Python:Tkinter布局管理器相关推荐

  1. Python ---Tkinter 布局管理器:place

    上一篇:Python -Tkinter 布局管理器:grid                                           The Tkinter Place Geometry ...

  2. Tkinter 布局管理器(一):pack

    Tkinter 布局管理器之pack pack.grid 和 place 均用于管理同在一个父组件下的所有组件的布局,其中: pack 是按添加顺序排列组件 grid 是按行/列形式排列组件 plac ...

  3. python无师自通配套资源_Python Tkinter Pack布局管理器(超级详细,看了无师自通)...

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

  4. python布局管理_Python基础=== Tkinter Grid布局管理器详解

    本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html          @ 箬笠蓑衣 Grid(网格)布局管理器会将控件放置到一个二维的表 ...

  5. python grid函数_(转)Python Tkinter Grid布局管理器详解

    Grid(网格)布局管理器会将控件放置到一个二维的表格里.主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件. 什么时候使用Grid管理器 grid管理器是Tkinter里面 ...

  6. python之place布局管理器

    place 布局管理器可以通过坐标精确控制组件的位置 适用于一些布局更加灵活的场景. place()方法的选项 x,y 组件左上角的绝对 坐标(相对于窗口) 非负整数 x 和 y 选项用于设置偏移(像 ...

  7. 窗口管理器 实现_「42」Python布局管理器(三):place实现组件的精确与灵活布局...

    已经学习了两类布局管理器: Pack布局管理器:按照垂直或者水平的方向自然排布: Grid布局管理器:采用表格结构组织组件,组件位置受限表格形式. 两类管理器都属于那种很古板的布局方式,不能适应需要相 ...

  8. python图形界面化编程GUI(二)常用的组件(Text、Radiobutton、Checkbutton、Canvas)和布局管理器(gird、pack、place)

    Text文本框 Text(多行文本框)的主要用于显示多行文本,还可以显示 网页链接, 图片, HTML 页面, 甚至 CSS 样式表,添加组件 等.主要用来显示信息,也常被当做简单的文本处理器.⽂本编 ...

  9. Python布局管理器

    使用步骤: 创建sizers布局管理器 调用SetSizer()将布局管理器添加到容器中 调用Add()将组件添加到布局管理器中 调用Fit()计算计算布局布局管理器和容器窗口的大小 #-*- cod ...

最新文章

  1. 带括号的中缀表达式转后缀表达式
  2. 【Interfacenavigation】选择时间/日期组件(34)
  3. Perl 正则表达式 html,使用正则表达式验证表单中的HTML字段使用perl
  4. Linux的Nginx三:类型|特点
  5. 总结一些调试的心得,ES7243
  6. matlab7.0 run,新手求救啊!!!matlab7.0在win7启动后命令窗口出现大段代码!
  7. 《大数据》第一届编委会顾问委员会议圆满召开
  8. 我来做百科(第一天)
  9. vue 数组添加元素_Vue躬行记(3)——样式和表单
  10. HDLM for AIX安装
  11. FFmpeg学习(10)—— ffmpeg最全的命令参数
  12. 电脑必备必装的软件工具神器,强烈推荐
  13. DirectX 9 游戏汉化详解
  14. PQ分区工具超详细图文教程
  15. C语言实验—— 数值统计
  16. python评分卡模型 简书_评分卡模型开发-定量特征筛选
  17. 任务,行动,目标、绩效管理,计划
  18. Python游戏概率保底算法PRD的实现
  19. NAND Flash SLC、MLC技术解析
  20. java检测弹窗并自动enter_JAVA实现自动检测股票波动情况,然后桌面上弹窗显示...

热门文章

  1. iPad打开应用后白屏的解决方法
  2. 快速版本,个性化时间戳(QQ拼音自定义短语)
  3. 三星android 截图,三星手机怎么截图 三星手机超简单截屏教程
  4. 实习小白::(转) Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤
  5. 为什么说支付宝推出余额宝值得赞赏?
  6. 前端,年纪30,加薪后才22K,在字节差不多满一年,高还是低?
  7. javascrit开发的基本代码结构的
  8. 浅谈面向对象的三大基本特征
  9. 参股期货 前景光明 留意
  10. 《越光宝盒》中的经典台词