首页/文章/ 详情

【G-5】Python GUI中Tkinter控件布局之容器应用

2年前浏览4804

本篇之目的,在于提供用TKinter做GUI的几个模版、框架,以后需要写个带界面的小程序时,能立即上手,摆兵(控件)布阵(容器),速战速决。


在Tkinter控件的布局中,可以使用一些容器控件来组织、布局控件,结构性更强,易于管理控件。


本篇将介绍Frame、LabelFrame、Notebook容器控件及Toplevel窗口,PanedWindow就不讲了。其中,用到的控件有Label、Button、Text、Scrollbar、Massage,用到的布局方法有pack()、grid()。


各种控件的详细应用可参考相关书籍、Python文档。


1 Frame


Frame容器控件,顾名思义,搭个架子,摆放东西。Frame作为容器,既可以往里添加控件,也可以往里添加容器,只要能组织、布局条理清晰即可。


在P22-G5-Frame.py中,在ExWin()类下面定义了3个方法,将创建2个Frame容器及往里添加控件的代码单独定义了方法,这样做只是为了将窗口、容器、控件关系更明确。好处是,要添加容器时,可以先创建一个方法,没设计完,不调用,不影响程序运行;要改一个容器内控件布局时,可以在其单独定义的方法内改,如果没改完,程序不调用该方法,则不影响程序运行。


在向Frame中创建、添加Label或Button时,用了for循环语句。如果控件不多,且后面要对控件更改设置时,不建议这样用。


2 LabelFrame


同样,为两个LabelFrame创建了两个方法,便于定向修改而不影响程序运行。P23-G5-LabelFrame.py及运行结果如下。


3 Notebook


在顶层窗口中创建了一个Notebook,包含4个标签页(选项卡),4个标签页中分别有:Frame、LabelFrame、Text、Text&Scrollbar。为每个标签页的内容定义了一个方法:crtFrame()、crtLabelFrame()、crtText()、crtText_Scroll()。


P24-G5-Notebook.py及运行结果如下。


4 Toplevel


在顶层窗口中创建了一个LabelFrame,包含1个标签、2个Button,单击Button可以打开一个对应的Toplevel窗口。一个Toplevel窗口为空,一个Toplevel窗口添加了Message控件。


P25-G5-Toplevel.py及运行结果如下。


5 小结


本篇4个程序给出了GUI控件布局、容器应用的模版框架,易于理解、改编。以后需要用Python写简单GUI小软件时,可以迅速上手。

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