目录
一、简介
二、基于Frame布局设计
三、Frame下嵌套的Frame自动伸缩,踩坑
四、Frame下嵌套的Text自动伸缩,踩坑
text必须设置=1或True才能自动伸缩
五、设置每个功能的控件布局
五、小结
一、简介
从前一篇下来,有一段时间没有更新了,那是因为在界面自动伸缩中,我遇到了自动伸缩的功能 。本文的目的就是帮助大家如何实现当我们自动拖拉tk窗口时,GUI可以自动伸缩 。
![二十 五 python自动化办公TKinter界面自动伸缩:基于Frame实现](http://img.gansulong.com/231014/1946403940-0.jpg)
文章插图
我们的目的很简单,就是类似实现上面的界面 。
二、基于Frame布局设计
我们的布局思路是先定义主页面,主页面放置菜单,菜单下面依次放置、、...等内容区域,每块内容互相独立称为一个模块,可以单独应用 。
我在项目定义了文件目录结构如下:
我核心的一些功能放在在,而又装载了ht,我每个功能实现都放在ht下面 。
主代码如下:
import tkinter as tkfrom tkinter import *from Top1_CustomFileDialogFrame import Top1_CustomFileDialogFramefrom Top2_ContextFrame importTop2_ContextFramefrom Top3_OperateFrame importTop3_OperateFramefrom CustomMenuFrame import CustomMenuFrame# 定义全局变量# rightframe = None# # def loadCustomFrame3():## 修改全局变量,只有这样才能修改全局变量#global rightframe## 不能使用 rightframe.frame.destroy方法,请自己验证一下#rightframe.frame.destroy()#rightframe = Top2_ContextFrame(master)#master.update()master = tk.Tk()master.geometry("1200x900")master.title("Tkinter")# 定义菜单customMenuFrame = CustomMenuFrame(master)top1_CustomFileDialogFrame = Top1_CustomFileDialogFrame(master)top2_ContextFrame = Top2_ContextFrame(master)top3_OperateFrame = Top3_OperateFrame(master)print("启动完成")master.mainloop()
三、Frame下嵌套的Frame自动伸缩,踩坑
我们把顶部()设置沿X轴方向拉伸,注意一定不要添加属性=True:
![二十 五 python自动化办公TKinter界面自动伸缩:基于Frame实现](http://img.gansulong.com/231014/19464020R-1.jpg)
文章插图
如下代码设置如下:
self.frame.pack(padx=5, pady=0, side=tk.TOP, expand=True, fill=tk.X)
那么拉伸效果变成如下,并不是我们想要的效果:
四、Frame下嵌套的Text自动伸缩,踩坑text必须设置=1或True才能自动伸缩
text.pack(expand=1, fill=tk.X, pady=5, side=LEFT)
五、设置每个功能的控件布局
【二十 五python自动化办公TKinter界面自动伸缩:基于Frame实现】每个Frame功能模块,都是用方法先定义控件,然后引入方法即可使用控件,条例清晰,代码复用率高:
五、小结
官网上说pack调用自动伸缩是,设置=1或=True,即可设置fill=tk.X或fill=tk.Y或fill=tk.BOTH,但是其实不然,这是我踩坑了好久的地方 。
- python在物理学中的应用_利用python求解物理学中的双弹簧质能系统详解
- 五官中反应最快的是
- python创建画布_在空白画布上创建
- 如何用Python保存语音、图片、视频等信息转发给好友
- python的excel函数_利用python在excel里面直接使用sql函数
- Python每日一学 02——对象与变量
- 35 【雕爷学编程】 MicroPython动手做——体验小游戏
- 科创板开市第五日25股23跌 仅航天宏图与交控科技上涨
- 第十五章 SPSS Modeler 集成学习算法之同质集成
- 【致敬未来的攻城狮计划】— 连续打卡第二十天:RA2E1_UART —— 串口通