Tkinter边框控件Frame怎么用
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章主要讲解了"Tkinter边框控件Frame怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Tkinter边框控件Frame怎么用"吧!在
千家信息网最后更新 2025年02月06日Tkinter边框控件Frame怎么用
这篇文章主要讲解了"Tkinter边框控件Frame怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Tkinter边框控件Frame怎么用"吧!
在众多的控件中,边框控件Frame可以说是一个比较特别的一个。之所以这么说是因为Frame控件本身并不会被显示,功能只是为了将其他控件组织为一个整体以便进行布局管理。
上面的视频是之前说明Text控件时使用的。当时使用的是grid布局,为了保证摆放足够数量的按钮,将Text控件的columnspan设置为8:
# create text widget.text = Text(root, undo=True, background="#a0ffa0", foreground="#000000", height = 10)text.grid(row=2 , column=0, columnspan=8)
但是这样做有一个不好的地方,就是Text控件的布局会受到按钮数量的影响,这不太好。本文使用Frame控件来解决这个问题。
首先构建包含第一行按钮的Frame控件:
edit_frame = Frame(root)
# change state function.
def change_state():
state = text.cget('state')
if state=='disabled':
text.config(state='normal')
text.config(background='#a0ffa0')
else:
text.config(state='disabled')
text.config(background='#efefef')
# change state button.
eb = Button(edit_frame,text="Enable", width=8, command=change_state)
eb.grid(row=0, column=0, sticky=E+W)
# delete selection.
def delete_selection():
try:
sel_from = text.index(SEL_FIRST)
sel_to = text.index(SEL_LAST)
# delete the selection.
text.delete(sel_from, sel_to)
except TclError:
pass
# delete selection button.
db = Button(edit_frame,text="Delete", width = 8, command=delete_selection)
db.grid(row=0, column=1, sticky=E+W)
# undo button
undo = Button(edit_frame, text='Undo', width = 8, command=lambda:text.edit_undo())
undo.grid(row=0, column = 2, sticky=E+W)
#redo button
redo = Button(edit_frame, text='Redo', width = 8, command=lambda:text.edit_redo())
redo.grid(row=0, column = 3, sticky=E+W)
edit_frame.grid(row=0, column=0, sticky=W)
代码比较长,但是大部分内容都和Text控件一文中的内容相同,不同的只有两点:
这点代码的首尾分别增加了构建edit_frame控件和使用grid方法对该控件进行布局的代码。
所有按钮的父控件都从root改为edit_frame。
接下来的格式按钮也以同样的方式处理:
format_frame = Frame(root)
# create fonts
fonts = [
Font(family='SimHei', size=20, weight=BOLD),
Font(family='SimHei', size=16),
Font(family='SimSun', size=12, weight=BOLD),
Font(family='SimSun', size=12)
]
# delete selection.
def format(index):
tag_name = 'Format' + str(index)
try:
sel_from = text.index(SEL_FIRST)
sel_to = text.index(SEL_LAST)
for name in text.tag_names():
text.tag_remove(name, sel_from, sel_to)
text.tag_add(tag_name, sel_from, sel_to)
# set format at first time.
range_count = len(text.tag_ranges(tag_name))
if range_count == 2:
text.tag_config(tag_name, font=fonts[index])
except TclError:
pass
# delete selection button.
for i in range(0, 4):
fb = Button(format_frame,
text="Format" + str(i),
width = 8,
command=lambda v=i : format(v))
fb.grid(row=1, column=i, sticky=E+W)
format_frame.grid(row=1, column=0, sticky=W)
使用Frame控件之后,在进行root窗口布局时,四个编辑按钮和四个格式按钮分别作为两个整体参加,因此生成Text控件时就不再需要考虑按钮的个数了:
# create text widget.text = Text(root, undo=True, background="#a0ffa0", foreground="#000000", height = 10)text.grid(row=2 , column=0)
感谢各位的阅读,以上就是"Tkinter边框控件Frame怎么用"的内容了,经过本文的学习后,相信大家对Tkinter边框控件Frame怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
控件
按钮
边框
布局
内容
代码
学习
就是
数量
整体
格式
说是
问题
不同
相同
接下来
这不
一行
不好
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
陕西社保费管理客户端服务器地址
厄瓜多尔网络安全
linuxmint可以做服务器
icrg数据库进不去
读卫星数据库
hbase分布式数据库爬虫
网络安全新闻小学
moxa 串口服务器故障
定制软件开发服务的收入确认案例
网页数据库怎么连接后台
帝国神话自定服务器版本
软件开发活动横幅
网络安全与法治知识竞赛题库
劳动防护服务器管理
网络技术和软件工程
医疗软件开发工作室
即时聊天软件开发总结
深信服网络安全工程师薛征宇
标签 数据库 设计
大连软件开发工资高吗
北京国家网络安全产业园区 授牌
linuxmint可以做服务器
数据库的安全性的定义
网络安全威胁分析
卡巴斯基网络安全日
在内网传输数据库
个人网络安全情况反思
路由器域名服务器
考勤管理数据库论文
导航软件开发环境有哪些