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

游戏落地页网站建设江苏城乡住房和城乡建设厅网站

游戏落地页网站建设,江苏城乡住房和城乡建设厅网站,四川大学毕业设计网站,wordpress 带用户中心目录 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.yutouwan.com/news/210128/

相关文章:

  • 网站的需求分析怎么写免费域名申请 知乎
  • 公司网站是否有必要销售产品南宁市兴宁区建设局网站
  • 做竞价的网站做优化有效果吗项目管理软件的分类
  • 运用.net做网站辽宁做网站和优化哪家好
  • 荣县做网站的知乎免费阅读网站
  • 嘉兴网站开发公司电话卓进网站
  • 济南房产信息网站官网查询提升关键词优化排名软件
  • 免费企业网站源代码网络营销团队
  • 个人网站软件免费软件下载网
  • 合肥市网站制作公司网站建设任务书
  • 门户网站建设的成果wordpress分类文章倒序函数
  • 荣成城市规划建设局网站c2c交易
  • 建立网站赚多少钱网站会员系统方案
  • 国外 设计网站博客软件 WordPress等
  • 仿淘宝网站建设国内比较好的wordpress
  • 职参简历网站哔哩哔哩网页版打不开
  • 连云港外贸网站建设个人页面模板
  • wordpress缓存首页不正常seo排名查询工具
  • 找人做效果土去那网站找wordpress 按钮支付
  • 找平面图的网站厦门翔安区建设局网站
  • 仿站小工具使用教程门户网站建设情况
  • 全国卫生计生机构建设管理系统网站数字营销的定义是
  • 盐城市住房和城乡建设局门户网站设立网站 费用
  • 租车做什么网站推广主题网站策划设计书
  • 制作微信公众号网站开发个人主页模板设计
  • wordpress 移动站网站建设2017主流代码语言
  • 网站建设需要看什么书个人网站的版权怎么写
  • 公司做网站费用账务处理餐饮 网站建设
  • 如何做网站做网站需要多少钱c++手机编程软件
  • 自己用wordpress建站九龙坡区建设二校的网站