首页/文章/ 详情

【G-3】Python GUI中Tkinter控件布局之grid( )

2年前浏览1829

对于Tkinter控件的布局,grid()方法比较简单,控件布局整齐,可以跟Excel的表格对比,理解grid()方法。Grid()方法将控件布置在虚拟的表格里,每个控件占一个或几个单元格,就像Excel中的单个单元格或几个单元格合并成一个单元格。


本篇所讲的grid()方法,主要包含以下参数的应用:

  • row/column

  • rowspan/columnspan

  • padx/pady

  • ipadx/ipady

  • Sticky

  • rowconfigure/columnconfigure


1 定格


初步了解grid()定位控件。


在grid()方法中用到了row/column(行、列)两个参数确定控件位置。


下面P13-G3-Grid-1.py中,在顶层窗口root中创建了3个Label(标签),使用grid()布局控件。


!!!程序第5、6、7行为控件位置参数定义,可以直接改参数值,避免到下面程序中改,这样便于改参数,运行程序,对比结果。第5、6、7行的参数在第19、20、21行用到。


2 跨格


使用grid()的rowspan/columnspan参数定义控件跨格(类似Excel的合并单元格,合并几行、几列)。


下面P14-G3-Grid-2.py中,第5、6、7行分别为每个控件定义了4参数,用于定义3个标签控件的行、列位置和跨行、跨列参数,对应19、20、21行。


在grid()方法中,rowspan/columnspan默认值为1,为了便于修改,在每个控件的grid()方法中都设置了rowspan/columnspan参数。


改第5、6、7行参数,运行程序,可对比不同排列、跨格效果。


3 边距


在grid()方法中,同样可以用padx/pady参数定义控件外边距,使用ipadx/ipady定义控件内边距。但ipadx/ipady很少使用,因为在控件中定义更方便,更便于“分级”管理。


下面P15-G3-Grid-3.py中,第8行定义了4个参数,用于定义控件内外边距,在20~25行用到。


改第8行参数,运行程序,可对比不同内外边距效果。


4 对齐


控件宽度、高度不一致时,可以使用grid()方法的sticky参数将控件对齐。


下面P16-G3-Grid-4.py中,第9行定义了3个参数,用于定义控件控件的对齐,在21、22、23行用到。


改第9行参数,运行程序,可对比不同对齐效果。同时,也可以结合修改第5、6、7行参数,运行程序,查看组合效果。


5 随动


窗口尺寸变化,各控件尺寸可以按照一定比例缩放。使用grid()方法的rowcongfigure/columnconfigure参数实现。


下面P17-G3-Grid-5.py中,第10行定义了3个参数,用于定义控件控件随窗口变化时的变化比例,在26~31行用到。


对齐方式sticky参数对rowcongfigure/columnconfigure参数效果有一定影响,需要结合使用。


改第9、10行参数,运行程序后拖动窗口边框,改变窗口尺寸,可对比不同对齐方式、随变比例效果。


6 小结

有Excel做对比,grid()方法比较容易理解和应用。注:4、5节程序第8行删掉=前的,

来源:AbaPY
科普python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-07
最近编辑:2年前
KongXH
博士 专注于有限元分析领域,联合创作...
获赞 49粉丝 100文章 59课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈