GPT的tkinter学习之路(3)

打印 上一主题 下一主题

主题 839|帖子 839|积分 2517

Task 1:使用菜单和对话框

预期效果:


  • 建立一个窗口,左上角是菜单栏,点击后会出现几个选项,如图

code:
  1. import tkinter as tk
  2. from tkinter import messagebox, filedialog
  3. # 创建主窗口
  4. root = tk.Tk()
  5. root.title("Tkinter 菜单和对话框示例")
  6. root.geometry("400x300")
  7. # 创建菜单栏
  8. menu_bar = tk.Menu(root)
  9. # 创建文件菜单
  10. file_menu = tk.Menu(menu_bar, tearoff=0)
  11. file_menu.add_command(label="Open", command=lambda: filedialog.askopenfilename())
  12. file_menu.add_command(label="Save", command=lambda: filedialog.asksaveasfilename())
  13. file_menu.add_separator()
  14. file_menu.add_command(label="Exit", command=root.quit)
  15. menu_bar.add_cascade(label="File", menu=file_menu)
  16. # 创建帮助菜单
  17. help_menu = tk.Menu(menu_bar, tearoff=0)
  18. help_menu.add_command(label="About", command=lambda: messagebox.showinfo("About", "This is a Tkinter demo"))
  19. menu_bar.add_cascade(label="Help", menu=help_menu)
  20. # 将菜单栏添加到主窗口
  21. root.config(menu=menu_bar)
  22. # 运行主事件循环
  23. root.mainloop()
复制代码
Attention:


  • tearoff=0表现这个窗口不能被分离,也就是不能从菜单栏那里拿下来,假设不设置tearoff参数,那么默认参数为1,会在菜单栏和框体出现一条虚线表明可以拿下来  拜见


  • 注意这一行
    file_menu.add_command(label="Open", command=lambda: filedialog.askopenfilename())
    中的匿名函数是为了延迟函数的实行,假如我们去掉这个匿名函数,那么反面调用的打开文件函数就会在创建窗口的时候实行,而非我们点击开始菜单的 open时启用
  • messagebox.showinfo()方法会产生一个弹窗,并且出现在最上层(不点掉没法干别的)

  • 横向的项目 (比方file,help) 添加使用add_cascade() (级联) 方法,纵向 (比方open,save) 添加使用add_command()

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表