tkinter创建多界面启动器

引言

TinEngine

基本结构

富文本内容

结语

引言

在制作GUI程序中,往往会出现软件功能不能够被一个窗口包含,这就要使用一个程序、多个界面的办法来处理了。但这又带来另一个问题,也就是当分类的窗口达到一定数量时,使用者需要通过一定的操作打开功能界面的时间就会很长,这在一定程度上影响了界面使用的便捷感。

解决这个问题其实也是比较简单的,我们可以通过一个集成窗口,将所有的功能窗口的启动按钮都放在这个集成窗口中,使用者只需要打开这个集成窗口,就可以打开自己想要使用的功能界面了。最简单的集成窗口,就是将不同功能窗口的启动按钮依次排放在界面上,但有如下两个缺点:

  1. 窗口大小有限(毕竟是一个集成窗口,横款不宜超过500像素),可能无法显示全部按钮
  2. 很多情况下我们可不止有按钮需要用在集成窗口中,图片、文字说明也必不可少

以上的缺点或许很多人会想到使用Text文本框来解决,通过Text的富文本功能,创建集成窗口。但单靠Text文本框来完成富文本的功能,代码较长,编写也比较麻烦,那么我们需要使用现成的tkinter富文本框。

TinEngine

以我的TinGroup为例,每个功能窗口都有自己的名字和自己的专属功能,那么富文本的内容大致如下:

===标题(窗口名称)===
>内容介绍
【启动按钮】
---分割线---

这是单个窗口的内容,其它窗口与此结构一样 关于Tin标记语言的用法和注意事项,可以访问Tin知识库或我的专栏查看

富文本内容

根据以上的内容,就可以编写集成窗口了(以下代码仅供参考):

#import 内容省略……

tintool=Toplevel()
tintool.title('TinGroup启动项')
tintool.geometry('500x300+100+50')
tintool.iconbitmap(TinPath+'\\Tin.ico')
tools=TinText(tintool,font=('微软雅黑',13),bg='#f0f0f0',cursor='arrow')
tools.pack(fill='both',expand=True)
tw=Button(tools,text='启用TinWriter编辑器',command=write_form)
tc1=Button(tools,text='TinChecker主窗口',command=TinChecker)
tc2=Button(tools,text='TinChecker片段检测功能',command=checker_all)
tm=Button(tools,text='TinMaker多功能编辑器',command=TinMaker)
tu=Button(tools,text='TinUpgrader升级器',command=up_tinreader)
ts=Button(tools,text='TinSetter设置配置文件',command=TinSetter)
tsheel=Button(tools,text='TinShell脚本环境',command=Shell)
tools.point_file(['<title>TinGroup组件启动项','<sp>2','<title>TinReader;;;2','<main>TinReader为TinGroup的主窗口,已打开;center;blue-orange',
'<separat>grey;---','<title>TinWriter;;;2','<main>TinWriter为Tin标记语言的基础编辑器,提供简捷的Tin语言编辑功能'])
tools.window_create('end',window=tw)
tools.point_file(['<separat>grey;---','<title>TinChecker;;;2','<main>TinChecker是检测Tin标记的工具,拥有两个功能窗口和一个后台接口'])
tools.window_create('end',window=tc1)
tools.window_create('end',window=tc2)
tools.point_file(['<separat>grey;---','<title>TinMaker;;;2','<main>TinMaker是Tin标记语言的集成编辑器,拥有更丰富的功能和操作提示,可以满足大型tin文件的编辑需要','<main>操作会比TinWriter更复杂;;red'])
tools.window_create('end',window=tm)
tools.point_file(['<separat>grey;---','<title>TinUpgrader;;;2','<main>Tin组件可以通过TinUpgrader升级至最新版本','<main>仅自动升级执行文件,新的Tin环境需要新的安装包;;red'])
tools.window_create('end',window=tu)
tools.point_file(['<separat>grey;---','<title>TinSetter;;;2','<main>在高层建立的配置文件修改器,用于修改 tincfg.tini 的配置'])
tools.window_create('end',window=ts)
tools.point_file(['<separat>grey;---','<title>TinShell;;;2','<main>TinShell由Smart-Space开发,是Tin的环境脚本语言'])
tools.window_create('end',window=tsheel)
tools.point_file(['<sp>2','<img>logo.png;;90x90'])
tools['state']='disable'

效果如下:

ttkpython多页面 tkinter能写多界面_gui

结语

现在,可以放心地继续完成你的多窗口构建了

☀tkinter创新☀