当前位置: 首页 > news >正文

福州 网站建设 快搜网络网站建设制作费用预算表

福州 网站建设 快搜网络,网站建设制作费用预算表,windows搭建网站,腾讯云注册域名后怎么做网站目录 Toplevel控件搭建父子窗口 最简明的父子窗口框架 改进一#xff1a;屏蔽和开放按钮 改进二#xff1a;子窗口始终在主窗口之上 改进三#xff1a;增加子窗口的关闭协议 改进四#xff1a;使子窗口长获焦点 总结 Toplevel控件搭建父子窗口 最近#xff0c;用P…目录 Toplevel控件搭建父子窗口 最简明的父子窗口框架 改进一屏蔽和开放按钮 改进二子窗口始终在主窗口之上 改进三增加子窗口的关闭协议 改进四使子窗口长获焦点 总结 Toplevel控件搭建父子窗口 最近用Python给单位里用的“智慧食堂”系统编制了一个餐卡充值文件生成器自动匹配餐卡号并快速生成导入数据用的Excel表格截图如下 使用tkinter Toplevel控件弹出子窗口用作设置备注的子窗口。在编程过程中边学边写探索到不少新知识简单介绍如下 最简明的父子窗口框架 创建一个主窗口、一个子窗口各放一个按钮代码如下 import win32api, tkinter as tkdef _toplevel():top tk.Toplevel(root)top.title(Toplevel Window)W,H400,300top.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})btn_Close tk.Button(top, textClose, commandtop.destroy)btn_Close.pack() if __name____main__:# 创建主窗口root tk.Tk()root.title(Main Window)# 获取windows系统桌面分辨率X,Ywin32api.GetSystemMetrics(0),win32api.GetSystemMetrics(1)W,H600,480root.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})# 创建一个打开Toplevel窗口的按钮btn_Open tk.Button(root, textOpen Toplevel, command_toplevel)btn_Open.pack()# 运行Tkinter事件循环root.mainloop() 上述代码的缺点是主窗口上的Open按钮可以反复点击打开多个子窗口要想办法按需要来屏蔽它的点击功能。 改进一屏蔽和开放按钮 以下代码可以调整按钮的使用状态tk.DISABLED、tk.NORMAL button.config(statetk.DISABLED) button.config(statetk.NORMAL) 打开子窗口时Open按钮的状态改为tk.DISABLED此时已无法点击了。 import win32api, tkinter as tk class TopWindow:def __init__(self, parent): top self.top tk.Toplevel(parent)top.title(Toplevel Window)W,H400,300top.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})btn_Close tk.Button(top, textClose, commandself.on_close)btn_Close.pack()def on_close(self):btn_Open.config(statetk.NORMAL)self.top.destroy()def on_open():TopWindow(root)btn_Open.config(statetk.DISABLED)if __name____main__: root tk.Tk() root.title(Main Window) X,Ywin32api.GetSystemMetrics(0),win32api.GetSystemMetrics(1)W,H600,480root.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})btn_Open tk.Button(root, textOpen Toplevel, commandon_open)btn_Open.pack()root.mainloop() 改进二子窗口始终在主窗口之上 top.transient(root)  # 设置Toplevel窗口始终在主窗口root的上方 import win32api, tkinter as tk class TopWindow:def __init__(self, parent): top self.top tk.Toplevel(parent)top.title(Toplevel Window)W,H400,300top.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})top.transient(root) # 设置Toplevel窗口始终在主窗口上方btn_Close tk.Button(top, textClose, commandself.on_close)btn_Close.pack()def on_close(self):btn_Open.config(statetk.NORMAL)self.top.destroy()def on_open():TopWindow(root)btn_Open.config(statetk.DISABLED)if __name____main__: root tk.Tk() root.title(Main Window) X,Ywin32api.GetSystemMetrics(0),win32api.GetSystemMetrics(1)W,H600,480root.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})btn_Open tk.Button(root, textOpen Toplevel, commandon_open)btn_Open.pack()root.mainloop()另外一种方法也能设置子窗口永远在前 top.wm_attributes(-topmost, True)  # 设置Toplevel窗口在所有窗口的上方 两种方法的区别在于后者是全局的设置它使得子窗口在操作系统中所有窗口的上面包括其它应用程序的窗口。 如下图请比较一下与上一张截图的效果有啥区别 改进三增加子窗口的关闭协议 如下图直接点击子窗口右上关闭按钮只触发窗口默认的top.destroy事件。这样关闭子窗口后主窗口的按钮状态并不能恢复以下代码使得子窗口的WM_DELETE_WINDOW关闭协议绑定了自定义的关闭事件self.onclose top.protocol(WM_DELETE_WINDOW, self.on_close) 完整代码如下 import win32api, tkinter as tk class TopWindow:def __init__(self, parent): top self.top tk.Toplevel(parent)top.title(Toplevel Window)W,H400,300top.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})top.transient(root)top.protocol(WM_DELETE_WINDOW, self.on_close)btn_Close tk.Button(top, textClose, commandself.on_close)btn_Close.pack()def on_close(self):btn_Open.config(statetk.NORMAL)self.top.destroy()def on_open():TopWindow(root)btn_Open.config(statetk.DISABLED)if __name____main__: root tk.Tk() root.title(Main Window) X,Ywin32api.GetSystemMetrics(0),win32api.GetSystemMetrics(1)W,H600,480root.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})btn_Open tk.Button(root, textOpen Toplevel, commandon_open)btn_Open.pack()root.mainloop()改进四使子窗口长获焦点 top.grab_set()  # 确保Toplevel窗口长获焦点 使用这个方法前面提到的按钮状态的切换以及子窗口绑定关闭协议的代码都不需要了非常简洁。top.grab_set() 配合 top.transient(root) 共同使用(如下标注红色部分)效果最佳 import win32api, tkinter as tk  class TopWindow:     def __init__(self, parent):           top self.top tk.Toplevel(parent)         top.title(Toplevel Window)         W,H400,300         top.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})        top.grab_set()         top.transient(root)         btn_Close tk.Button(top, textClose, commandtop.destroy)         btn_Close.pack() def on_open():     TopWindow(root) if __name____main__:   root tk.Tk()       root.title(Main Window)       X,Ywin32api.GetSystemMetrics(0),win32api.GetSystemMetrics(1)     W,H600,480     root.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2}) btn_Open tk.Button(root, textOpen Toplevel, commandon_open)     btn_Open.pack()     root.mainloop() 源代码复制框如下 import win32api, tkinter as tk class TopWindow:def __init__(self, parent): top self.top tk.Toplevel(parent)top.title(Toplevel Window)W,H400,300top.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})top.grab_set()top.transient(root)btn_Close tk.Button(top, textClose, commandtop.destroy)btn_Close.pack()def on_open():TopWindow(root)if __name____main__: root tk.Tk() root.title(Main Window) X,Ywin32api.GetSystemMetrics(0),win32api.GetSystemMetrics(1)W,H600,480root.geometry(f{W}x{H}{(X-W)//2}{(Y-H)//2})btn_Open tk.Button(root, textOpen Toplevel, commandon_open)btn_Open.pack()root.mainloop() 总结 通过对toplevel控件的编程操练掌握了tkinter子窗口的调用方法了解了topleve的多种特殊方法、响应事件以及绑定协议。
http://www.hkea.cn/news/14444470/

相关文章:

  • 天津seo关键字推广网站建设优化话术
  • 怎么改网站关键词工程项目网站
  • wordpress搭建的知名网站wordpress自动获取标签
  • 网站如何防止黑客攻击云南网架加工
  • 广州美快软件开发有限公司开封网站优化
  • 专业做合同的网站404 重定向 wordpress
  • 做公司网站需要有座机吗h5游戏是什么意思
  • 网站建设实施计划包括2345浏览器主页
  • 做pc端网站信息建立网站要什么条件和多少钱
  • 网站建设和开发免费网站系统
  • asp iis设置网站路径胶州市城乡建设局网站截图
  • 一个专门做字画的网站wordpress访问非常慢
  • 广州大型网站设计公司长沙网页制作设计
  • 刚做优化的网站什么能更新天津河北做网站的公司排名
  • 网站建设的方案图片湖南长沙
  • 网站开发的售后 维保1688货源网官方网站
  • 模板网站 知乎兼职做网站安全么
  • 用旧手机做网站福州便民生活网
  • 捕鱼网站怎么做wordpress 自动关键词
  • 酒店类网站开发策略网站开发与软件研发有什么区别
  • 一元云购手机网站建设常见的网络推广方法有哪些
  • 吉林省建设项目招标网站做微博类的网站难吗
  • 网站哪个公司做企业免费网站建设哪里比较好
  • 网页设计和网站编辑跨境电商面试自我介绍范文
  • 全球做的比较好的网站平台营销型网站建设
  • 全球做的比较好的网站深圳画册设计公司怎么样
  • 网站空间支持功能半厘米wordpress
  • 网站营销 海外培训班网页设计
  • 设计网站公司力荐亿企邦免费一站式网站建设
  • 怎样创作网站游戏推广是什么工作