使用tkinter生成图形用户界面(GUI)

Love The Way You Lie 2022-02-21 01:51 613阅读 0赞
  1. #公用部分
  2. import tkinter as tk #引入图形用户界面库
  3. from tkinter import ttk #引入ttk模块
  4. from tkinter import Menu #引入Menu模块
  5. jm = tk.Tk() #生成jm主窗口
  6. jm.title("我的GUI") #GUI标题
  7. jm.geometry('150x150+885+465') #窗口大小及位置,不包括菜单栏及title部分,前2个参数表示大小,后2个参数表示位置(一般是窗口相对屏幕的坐标)
  8. jm.resizable(0, 0) #固定GUI尺寸大小,不可调节,最大化按钮不可点击
  9. #图形界面一:改变字体颜色
  10. txt = ttk.Label(jm, text="你是谁?") #界面里添加标签,并设置标签内容
  11. txt.grid(column=0, row=0) #设置标签位置,此步不能直接写在上一步的后面,会报错
  12. def clickMe():
  13. """
  14. 创建改变标签颜色的按钮
  15. """
  16. act.configure(text="已点击") #设置按钮上的文字
  17. txt.configure(foreground='yellow') #设置标签字体颜色
  18. act = ttk.Button(jm, text="请点击", command=clickMe) #设置“请点击”按钮
  19. act.grid(column=1, row=0)
  20. #图形界面二:创建输入框
  21. def clickMe():
  22. act.configure(text=name.get() + "先生,你好!") #StringVar()里的get()用于调用值
  23. act.configure(state='disabled') #设置按钮显示状态
  24. ttk.Label(jm, text="请输入你的名字:").grid(column=0, row=0)
  25. act = ttk.Button(jm, text="请点击", command=clickMe)
  26. act.grid(column=1, row=1)
  27. #以下3行用来构造输入框
  28. name = tk.StringVar() #StringVar()用于管理部件上的字符
  29. nameEntered = ttk.Entry(jm, width=12, textvariable=name) #Entry为单行文本框,textvariable为可变文本,与StringVar等配合着用
  30. nameEntered.grid(column=0, row=1)
  31. #图形界面三:创建下拉框
  32. nu = tk.StringVar()
  33. nuChosen = ttk.Combobox(jm, width=12, textvariable=nu) #创建Combobox下拉选择框
  34. nuChosen['values'] = (" سنة جديدة سعيدة ", "ปีใหม่มีความสุข", "新年快樂", "狗年旺旺", "新年快乐") #下拉选择框的列表内容
  35. nuChosen.grid(column=1, row=1)
  36. nuChosen.current(0) #设置下拉框默认内容,0为下标,即默认下拉框显示列表第一个值
  37. #图形界面四:创建菜单栏。菜单栏包括两个下拉菜单:文件、帮助。
  38. men = Menu(jm) #在jm窗口控件中创建一个根菜单框
  39. jm.config(menu=men) #要想显示菜单,必须在“要添加菜单的窗口对象jm”的config中允许添加“菜单对象men”才能显示出菜单
  40. fileMenu = Menu(men, tearoff=0) #在根菜单框中创建一个子菜单框,tearoff为分窗,0为在原窗显示,1为点击会打开另一个窗口显示该主菜单
  41. men.add_cascade(label="文件", menu=fileMenu) #添加子菜单(label参数为显示内容)
  42. fileMenu.add_command(label="新建", accelerator = 'Ctrl+N') #添加命令,并设置快捷方式
  43. fileMenu.add_command(label="打开", accelerator = 'Ctrl+O')
  44. fileMenu.add_command(label="保存", accelerator = 'Ctrl+S')
  45. submenu = Menu(fileMenu, tearoff=0) #在子菜单框fileMenu下创建下级菜单框submenu
  46. fileMenu.add_cascade(label="查看", menu=submenu) #在下级菜单框submenu中添加下级菜单
  47. submenu.add_command(label="大图") #添加命令
  48. submenu.add_command(label="小图")
  49. fileMenu.add_separator() #子菜单之间加分割线
  50. fileMenu.add_command(label="退出", command=jm.quit) #quit退出
  51. helpMenu = Menu(men, tearoff=0)
  52. men.add_cascade(label="帮助", menu=helpMenu)
  53. helpMenu.add_command(label="联系")
  54. helpMenu.add_separator()
  55. helpMenu.add_command(label="关于")
  56. #公用部分
  57. jm.mainloop() #进入消息循环,必须组件

发表评论

表情:
评论列表 (有 0 条评论,613人围观)

还没有评论,来说两句吧...

相关阅读