Python中怎么实现一个对话框类
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这期内容当中小编将会给大家带来有关Python中怎么实现一个对话框类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。构建一个修改文件名对话框。# 构建顶层窗口作为对话
千家信息网最后更新 2025年02月02日Python中怎么实现一个对话框类
这期内容当中小编将会给大家带来有关Python中怎么实现一个对话框类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
构建一个修改文件名对话框。
# 构建顶层窗口作为对话框rename_dlg = Toplevel(takefocus=True)# 指定窗口标题rename_dlg.title('Rename')# 禁止窗口尺寸调整rename_dlg.resizable(width=False, height=False)# 构建Frame对象以容纳Label和Entry对象# 使用Frame可以分别调整Label/Entry区域和下面的按钮区域fn_frame = Frame(rename_dlg)fn_frame.grid(row=0,column=0)Label(fn_frame, text='File Name:').grid(row=0, column=0)fn_var = StringVar()fn_var.set(fn)fn_entry = Entry(fn_frame, textvariable=fn_var)fn_entry.grid(row=0, column=1)# 构建Frame对象以容纳OK和Cancel按钮btn_frame = Frame(rename_dlg)btn_frame.grid(row=1, column=0, sticky='e')# 通过labmda表达式传递构建按钮控件时的对话框控件,路径和文件名信息# 修改后的文件名要在按下【OK】按钮是通过fn_var.get获取。ok_btn = Button(btn_frame, text='OK', command=(lambda w=rename_dlg,p=path,s=fn: rename_ok(w,p,s,fn_var.get())))ok_btn.grid(row=0, column=0)# 取消按钮直接销毁窗口对象cancel_btn=Button(btn_frame, text='Cancel', command=rename_dlg.destroy)cancel_btn.grid(row=0, column=1)# 限定rename_dlg接收鼠标和键盘事件,这是实现模态对话框的关键。rename_dlg.grab_set()# 使对话框相对于root窗口居中center_window(rename_dlg, root)# 启动对话框主循环rename_dlg.mainloop()# 销毁对话框窗口rename_dlg.destroy()
如果观察代码可以知道,从第7行到第27行为止是FileBrowser的实际需要的功能,其他的代码则是构建任何对话框都需要的处理。以下用用一个类将这部分功能独立出来:
class Dialog(Toplevel):
def __init__(self, ref, title):
Toplevel.__init__(self, takefocus=True)
self.ref = ref
# 指定窗口标题
self.title(title)
# 禁止窗口尺寸调整
self.resizable(width=False, height=False)
self.create_widgets()
# 限定rename_dlg接收鼠标和键盘事件,这是实现模态对话框的关键。
self.grab_set()
# 使对话框相对于root窗口居中
center_window(self, ref)
# 启动对话框主循环
self.mainloop()
def create_widgets(self): pass
当需要构建自己的对话框时只要继承Dialog可并实现create_widgets方法即可:
class RenameDialog(Dialog):
def __init__(self, file_list, path, fn):
self.path = path
self.fn = fn
self.fn_var = StringVar()
self.fn_var.set(self.fn)
Dialog.__init__(self, file_list.winfo_toplevel(), 'Rename File')
# 更新文件列表
file_list.select_node(None)
def create_widgets(self): # 构建Frame对象以容纳Label和Entry对象 # 使用Frame可以分别调整Label/Entry区域和下面的按钮区域 fn_frame = Frame(self) fn_frame.grid(row=0, column=0) Label(fn_frame, text='File Name:').grid(row=0, column=0) fn_entry = Entry(fn_frame, textvariable=self.fn_var) fn_entry.grid(row=0, column=1) # 构建Frame对象以容纳OK和Cancel按钮 btn_frame = Frame(self) btn_frame.grid(row=1, column=0, sticky='e') # 通过labmda表达式传递构建按钮控件时的对话框控件,路径和文件名信息 # 修改后的文件名要在按下【OK】按钮是通过fn_var.get获取。 ok_btn = Button(btn_frame, text='OK', command=self.__rename) ok_btn.grid(row=0, column=0) # 取消按钮直接销毁窗口对象 cancel_btn = Button(btn_frame, text='Cancel', command=self.destroy) cancel_btn.grid(row=0, column=1)
可以看到,RenameDlg类中只剩下FileBrowser相关的部分了。将这部分功能封装成类的另一个好处是使用对话框的代码变得简单了:
def rename_current(self): path, selections = self.selected_files() if path: for fn in selections: dlg = RenameDialog(self, path, fn) self.select_node(None)
上述就是小编为大家分享的Python中怎么实现一个对话框类了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
对话框
对话
按钮
对象
文件
文件名
区域
控件
调整
代码
功能
事件
信息
关键
内容
尺寸
标题
模态
表达式
路径
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于网络安全的一篇作文
汽车数据网络安全概念股
杭州定制软件开发哪家好
2020江苏网络安全宣传日
黑板报模板网络安全类的
数据库注释单词
思科服务器管理控制器密码
江苏服务器整体机柜云空间
命令创建db2管理服务器
计算机网络技术省考代码
c 南京软件开发招聘
学网页需要学好数据库吗
计算机网络技术岗位说明书
自媒体网络安全会议
数据库常见故障及维修
网络安全新手手抄报
电脑打印出现服务器错误
plsql直接链接数据库吗
系统无法验证数据库信息
标准件选型软件开发
网络安全半年总结报告
ibm x系列服务器管理口
视图会影响数据库吗
怎么进入服务器安全模式
网络安全就业工作是什么
网吧服务器后台
株洲net软件开发培训收费
crm数据库设计
病毒运行需要用到服务器吗
计算机网络技术中期目标