首页 > 编程语言 >Python基础入门学习笔记 073 GUI的终极选择:Tkinter10

Python基础入门学习笔记 073 GUI的终极选择:Tkinter10

时间:2023-08-23 14:00:10浏览次数:63  
标签:菜单 callback Python GUI filemenu Tkinter10 add command root

Munu组件

Tkinter提供了一个Menu组件,用于实现顶级菜单、下拉菜单和弹出菜单。

实例1:创建一个顶级菜单(或称窗口主菜单)

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 
 9 menubar = Menu(root)#创建一个顶级菜单
10 menubar.add_command(label="Hello",command=callback)#创建一个顶级菜单对象
11 menubar.add_command(label="Quit",command=root.quit)
12 
13 #显示菜单
14 root.config(menu=menubar)
15 
16 mainloop()

 实例2:创建添加到主菜单上的下拉菜单

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 #创建一个顶级菜单
 9 menubar = Menu(root)
10 
11 #创建下拉菜单filemenu包含内容
12 filemenu=Menu(menubar,tearoff=False)#创建一个从属于menubar的子菜单(下拉菜单)filemenu
13 filemenu.add_command(label="打开",command=callback)#创建一个下拉菜单对象
14 filemenu.add_command(label="保存",command=callback)
15 filemenu.add_separator()#插入分隔线
16 filemenu.add_command(label="退出",command=root.quit)
17 #创建一个顶级菜单对象“文件”,filemenu从属于这个对象(或称将filemenu添加到顶级菜单“文件”中)
18 menubar.add_cascade(label="文件",menu=filemenu)
19 
20 #创建另一个下拉菜单editmenu包含内容
21 editmenu=Menu(menubar,tearoff=False)#创建一个从属于menubar的子菜单(下拉菜单)editmenu
22 editmenu.add_command(label="剪切",command=callback)
23 editmenu.add_command(label="拷贝",command=callback)
24 editmenu.add_separator()#插入分隔线
25 editmenu.add_command(label="粘贴",command=callback)
26 #创建一个顶级菜单对象“编辑”,editmenu从属于这个对象(或称将editmenu添加到顶级菜单“编辑”中)
27 menubar.add_cascade(label="编辑",menu=editmenu)
28 
29 #显示菜单
30 root.config(menu=menubar)
31 
32 mainloop()

 实例3:创建一个弹出菜单方法

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 def popup(event):
 9     menu.post(event.x_root,event.y_root)#在此时鼠标位置弹出显示窗口
10     
11 #创建一个顶级菜单menu
12 menu = Menu(root,tearoff=False)
13 
14 #创建顶级菜单menu包含内容
15 menu.add_command(label="撤销",command=callback)#创建一个顶级菜单对象
16 menu.add_command(label="重做",command=callback)
17 #创建一个框架
18 frame = Frame(root,width=100,height=100)
19 frame.pack()
20 
21 #将鼠标右键与popup方法绑定
22 frame.bind("<Button-3>",popup)
23 
24 #显示菜单
25 #root.config(menu=menu)
26 
27 mainloop()

 实例4:菜单弹出

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 def popup(event):
 9     menu.post(event.x_root,event.y_root)#在此时鼠标位置弹出显示窗口
10     
11 #创建一个顶级菜单menu
12 menu = Menu(root,tearoff=True)
13 
14 #创建顶级菜单menu包含内容
15 menu.add_command(label="撤销",command=callback)#创建一个顶级菜单对象
16 menu.add_command(label="重做",command=callback)
17 #创建一个框架
18 frame = Frame(root,width=500,height=500)
19 frame.pack()
20 
21 #将鼠标右键与popup方法绑定
22 frame.bind("<Button-3>",popup)
23 
24 #显示菜单
25 #root.config(menu=menu)
26 
27 mainloop()

 实例5:添加单选组件radiobutton和多选按钮checkbutton

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 #创建一个顶级菜单
 9 menubar = Menu(root)
10 #创建checkbutton关联变量
11 openVar = IntVar()
12 saveVar = IntVar()
13 exitVar = IntVar()
14 #创建下拉菜单filemenu包含内容
15 filemenu=Menu(menubar,tearoff=True)#创建一个从属于menubar的子菜单(下拉菜单)filemenu
16 filemenu.add_checkbutton(label="打开",command=callback,variable=openVar)#创建一个下拉菜单对象
17 filemenu.add_checkbutton(label="保存",command=callback,variable=saveVar)
18 filemenu.add_separator()#插入分隔线
19 filemenu.add_checkbutton(label="退出",command=root.quit,variable=exitVar)
20 #创建一个顶级菜单对象“文件”,filemenu从属于这个对象(或称将filemenu添加到顶级菜单“文件”中)
21 menubar.add_cascade(label="文件",menu=filemenu)
22 
23 #创建radiobutton关联变量
24 editVar = IntVar()
25 editVar.set(1)
26 
27 #创建另一个下拉菜单editmenu包含内容
28 editmenu=Menu(menubar,tearoff=True)#创建一个从属于menubar的子菜单(下拉菜单)editmenu
29 editmenu.add_radiobutton(label="剪切",command=callback,variable=editVar,value=1)
30 editmenu.add_radiobutton(label="拷贝",command=callback,variable=editVar,value=2)
31 editmenu.add_separator()#插入分隔线
32 editmenu.add_radiobutton(label="粘贴",command=callback,variable=editVar,value=3)
33 #创建一个顶级菜单对象“编辑”,editmenu从属于这个对象(或称将editmenu添加到顶级菜单“编辑”中)
34 menubar.add_cascade(label="编辑",menu=editmenu)
35 
36 #显示菜单
37 root.config(menu=menubar)
38 
39 mainloop()

Menubutton组件(希望菜单按钮出现在其它位置时)

Menubutton组件是一个与Menu组件相关联的按钮,它可以放在窗口中的任意位置,并且在被按下时弹出下拉菜单

实例1:

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 #创建一个顶级菜单Menubutton按钮,设置为浮起显示(RAISED)
 9 mb = Menubutton(root,text="点我",relief=RAISED)
10 
11 mb.pack(side=RIGHT)#设置为右中显示
12 
13 #创建下拉菜单filemenu包含内容
14 filemenu = Menu(mb,tearoff=False)#创建一个从属于mb的下拉菜单filemenu
15 filemenu.add_checkbutton(label="打开",command=callback,selectcolor="yellow")
16 filemenu.add_command(label="保存",command=callback)#创建一个下拉菜单对象"保存“
17 filemenu.add_separator()
18 filemenu.add_command(label="退出",command=root.quit)
19 #显示菜单
20 mb.config(menu=filemenu)
21 
22 mainloop()

OptionMenu(选项菜单)组件

选项菜单的发明弥补了Listbox组件无法实现下拉列表框的遗憾

实例1:

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 variable = StringVar()#创建字符串变量variable
 9 variable.set("one")#初始值设置为"one"
10 w = OptionMenu(root,variable,"one","two","three")
11 w.pack()
12 
13 mainloop()

 实例2:多个选项添加到选项菜单中

 1 from tkinter import *
 2 
 3 def callback():
 4     print("被调用了")
 5     
 6 root = Tk()
 7 
 8 OPTIONS = [
 9     "Hadley",
10     "小土豆",
11     "yiwofeiye",
12     "RAN"
13     ]
14 
15 variable = StringVar()#创建字符串变量variable
16 variable.set(OPTIONS[0])#初始值设置为"one"
17 w = OptionMenu(root,variable,*OPTIONS)
18 w.pack()
19 
20 def callback():
21     print(variable.get())
22 
23 Button(root,text="点我",command=callback).pack()
24 
25 mainloop()

标签:菜单,callback,Python,GUI,filemenu,Tkinter10,add,command,root
From: https://www.cnblogs.com/ybqjymy/p/17651436.html

相关文章

  • 发送到Teams的python程序处理,其中也保括上传到OSS的文件处理
    1importurllib2importtime3importoss24importos5importrandom6frompathlibimportPath7importrequests8importdatetime9fromdecoupleimportconfig1011fromurllib.parseimportunquote121314#......
  • Python+百度OCR进行图像识别
    说实在的Pyhon在数据处理方面确实很牛。尤其是大数据的今天,我们和形形色色的数据形影不离。本文给大家介绍下利用百度OCR进行文字识别。实验环境Python(3.9.12)KaliLinux百度OCR申请百度OCR访问百度智能云,开通API网址:https://cloud.baidu.com/campaign/OCR202203/index.html可以......
  • 一个查询数据库并解析其中的json格式的数据,并处理后保存到另外的表的python程序
    1importjson2importpymysql3importdatetime4fromdecimalimportDecimal5fromdecoupleimportconfig678#获取每日汇率的方法9defget_currency_rate(code):10currency_db_host=config("CURRENCY_DB_HOST")11curre......
  • python-上下文管理器Context
    1.什么是上下文管理器?上下文管理器是一个对象,他定义了执行with语句时要建立的上下文,上下文管理器处理进去和退出所需运行时上下文执行代码块。简单来说一个上下文管理器至少包含__enter__和__exit__两个方法,python提供了contextlib模块中的contextmanager用作装饰器并配合迭......
  • python读取shapefile
     #!/usr/bin/envpython#coding:utf-8#AutorGaoSong#读取shp数据importosimporttkinterimporttkinter.messageboximporttkinter.filedialogfromosgeoimportgdalfromosgeoimportosrfromosgeoimportogrfromosgeoimportgdalconstclassARCVIE......
  • python获取网络时间和本地时间
    今天我们来看一下如何用python获取网络时间和本地时间,直接上代码吧,代码中都有注释。python获取网络时间1234567891011121314151617181920212223242526272829获取网络时间def getBeijinTime():"""获取北京时间"""try:conn= httplib.HTTPConnection("www.beijing-time.org")co......
  • Unity UGUI的Image(图片)组件的介绍及使用
    UGUI的Image(图片)组件的介绍及使用1.什么是UGUI的Image(图片)组件?UGUI的Image(图片)组件是Unity引擎中的一种UI组件,用于显示2D图像。它提供了一种简单而灵活的方式来在游戏中加载和显示图片。2.为什么要使用UGUI的Image(图片)组件?使用UGUI的Image组件可以方便地在游戏中展示各种图......
  • Python基础入门学习笔记 070 GUI的终极选择:Tkinter7
    实例1:添加Tags1fromtkinterimport*23root=Tk()4text=Text(root,width=30,height=5)5text.pack()67#INSERT索引表示插入光标当前的位置8text.insert(INSERT,"IloveFishC.com!")#光标当前的位置插入9#注意,行号从1开始,列号则从0开始10text.ta......
  • Python中的if-else语法糖
    Python中的if语句是用于条件控制的一种语法结构,可以根据条件的真假来决定程序的执行路径。在Python中,if语句的语法如下:if条件:执行语句块其中,条件是一个返回布尔值的表达式,如果条件为True,那么执行语句块中的代码;如果条件为False,则跳过语句块。除了基本的if语句外,Python还......
  • Python基础入门学习笔记 067 GUI的终极选择:Tkinter4
    实例1:1fromtkinterimport*23root=Tk()#创建主窗口4e=Entry(root)#在主窗口中插入输入框5e.pack(padx=20,pady=20)67e.delete(0,END)#清空输入框8e.insert(0,"默认文本...")#设置输入框内容910mainloop() 实例2:1fromtkinterimp......