前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python图形界面开发之tkinter-布局

python图形界面开发之tkinter-布局

作者头像
程序那些事儿
发布2023-03-07 13:27:02
6720
发布2023-03-07 13:27:02
举报
文章被收录于专栏:程序那些事儿程序那些事儿

布局

任何界面都有自己的布局风格,有些是横向布局,有些是纵向布局,有些是流水布局,还有些是网格布局,总之布局就是一种考虑如何放置元素或者组件的一种说明方式。

包裹(包装)布局

thinter中使用pack进行包裹布局。widgets.pack(pack_options) 这个是函数原型,pack_options有三个常用属性,分别是expand ,fill,side这三个属性

  • expand 是否扩展,当它设置为true的时候,它会沾满父组件的空间,当然,这是在其它同级元素布局剩下之后的空间。
  • fill 是填充的意思,它可以指定填充的方向,比如我们想要一个button或者label占满一行,我们可以就可以设置fill = tk.X (其中tk是tkiner的简写,import tkinter as tk)
  • side是一侧的意思,比如我们要让两个button并排显示可以一个设置side=tk.LEFT,一个设置为tk.RIGHT
  • pdx,pdy是用来设置距离左右上下的位置的,有了他们,我们就可以灵活设置组件的布局了

栅格布局(网格布局)

tkinter还有一种布局叫做grid布局,就是我们常说的网格布局。

grid有4个可选参数,分别是row,rowspan,column,columnspan,sticky

  • row指的是排在第一行
  • rowspan指的是占有多少行
  • column指的是排在第几列
  • columnspan指的是占有几列
  • sticky粘性,指的就是对齐固定方式,有nswe4个方位,分别是上北下南左西右东(n=nouth,s=south,e=east,w=west)

坐标布局

坐标布局使用place进行元素的位置放置,它有x,y两参数,可以用来指定距离父组件的左上角的横坐标距离和纵坐标距离。

可以说相对其它布局,它是最灵活的,也是最精准的,只要给出x,y我们可以精确的放置到任何想要的位置,但是因为需要计算距离,所以相对来说也更麻烦一些。

总结

tkinter为我们提供了三种布局,可以说每种布局都有自己的特点,pack相对用户来说不需要做过多操作就可以自动元素排列,适合于粗狂的布局,也就是整体布局。

grid布局相对来说有板有眼,适合那种规规矩矩的布局,类似于磁铁布局。

place布局适合那种对细节要求严丝合缝的场合。

三种布局不是孤立的,但是grid和pack不要同时使用。它们两个可以分别和place配合使用。

正式有了布局系统的存在,我们才可以设计出任何我们想要的排版,可以说只有弄清楚了布局系统,才算是对tkinter入门了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序那些事儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 布局
  • 包裹(包装)布局
  • 栅格布局(网格布局)
  • 坐标布局
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档