前言:
今天朋友们对“java按钮的位置”都比较关怀,小伙伴们都需要知道一些“java按钮的位置”的相关知识。那么小编同时在网上收集了一些对于“java按钮的位置””的相关文章,希望同学们能喜欢,朋友们一起来了解一下吧!目录:菜单菜单按钮选项菜单动态更新 OptionMenu 选项OptionMenu 样式设置OptionMenu 级联菜单
在本文中,将介绍如何创建 tkinter 菜单栏、、菜单按钮、选项菜单,向菜单栏添加菜单以及向每个菜单添加菜单项。
当应用程序包含大量功能时,需要使用菜单来组织它们以便于导航。通常,使用菜单对相关的操作进行分组。
要创建菜单,使用如下构造函数。
menu = tk.Menu(master, **options)
菜单
创建一个简单的菜单需要以下几个步骤:
1.创建一个菜单栏 menubar 并将其分配给窗口:
menubar = tk.Menu(root)
root.config(menu=menubar)
每个顶级窗口只能有一个菜单栏。
2.在菜单栏 menubar 创建一个菜单 file_menu:
file_menu = Menu(menubar)
3.向菜单 file_menu 中添加菜单项 Exit:
file_menu.add_command(label='Exit', command=root.destroy)
单击菜单项时,Python 将关闭窗口。
4.将菜单项 Exit 添加到菜单 file_menu,显示标签为 File:
menubar.add_cascade(label="File", menu=file_menu, underline=0)
underline 选项允许创建键盘快捷键。指定快捷键字符的位置。该位置从 0 开始。
在以上示例中,将指定 File 的第一个字符,即您可以使用键盘快捷键 Alt+F。
完整示例
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('Menu 菜单演示')menubar = tk.Menu(root)root.config(menu=menubar)file_menu = tk.Menu(menubar)file_menu.add_command( label='Exit', command=root.destroy, underline=0 )menubar.add_cascade( label="File", menu=file_menu, underline=0 ) root.mainloop()
默认情况下,在第一个菜单项之前会添加一条虚线。当单击虚线时,主窗口将从菜单中分离。
要删除虚线,可以为菜单添加参数 :tearoff = False
file_menu = Menu(menubar, tearoff=False)
可以继续为菜单项添加子菜单
1.创建一个菜单项:sub_menu:
sub_menu = tk.Menu(file_menu, tearoff=0)
2.为菜单项 sub_menu 添加两个子菜单:
sub_menu.add_command(label='关闭当前文件')
sub_menu.add_command(label='关闭所有文件')
3.将菜单项 sub_menu 添加到菜单 file_menu,显示标签为 关闭文件:
file_menu.add_cascade(label="关闭文件", menu=sub_menu)
完整示例
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('Menu 菜单演示')menubar = tk.Menu(root)root.config(menu=menubar)file_menu = tk.Menu(menubar, tearoff=False)file_menu.add_command(label='新建')file_menu.add_command(label='打开...')sub_menu = tk.Menu(file_menu, tearoff=0)sub_menu.add_command(label='关闭当前文件')sub_menu.add_command(label='关闭所有文件')file_menu.add_cascade(label="关闭文件", menu=sub_menu)file_menu.add_separator()file_menu.add_command(label='退出', command=root.destroy)menubar.add_cascade(label="文件", menu=file_menu)menubar.add_cascade(label="编辑")root.mainloop()
Tkinter 菜单函数
函数
说明
add_command()
将菜单项添加到菜单。
add_radiobutton()
向菜单添加单选按钮项
add_checkbutton()
向菜单添加复选框
add_cascade()
将菜单加入菜单栏。
add_separator()
在菜单中添加分隔线
add()
将指定类型的项目添加到菜单中
index()
返回指定菜单项的索引
菜单按钮
Menubutton 菜单按钮是菜单和按钮的组合,单击按钮时,会显示一个包含选项的菜单。
要创建Menubutton 菜单按钮,使用如下构造函数。
menu_button = tk.Menubutton(master, **options)
首先创建菜单按钮:
menubttn = tk.Menubutton(root, text = "程序设计", relief = tk.RAISED)
其次,为菜单按钮创建菜单,添加菜单项(复选、单选、菜单):
menu = tk.Menu(menubttn, tearoff = 0)
menu.add_checkbutton(label = "Python")
menu.add_radiobutton(label = "C++")
menu.add_command(label='打开')
最后,将菜单添加到菜单按钮:
menubttn["menu"] = menu
menubttn.pack(pady=20)
完整示例
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('Menubutton 菜单按钮演示')menubttn = tk.Menubutton(root, text = "程序设计", relief = tk.RAISED) menu = tk.Menu(menubttn, tearoff = 0)menu.add_checkbutton(label = "Python")menu.add_checkbutton(label = "Java")menu.add_radiobutton(label = "C++")menu.add_radiobutton(label = "PHP")menu.add_command(label='打开')menu.add_command(label='关闭')menubttn["menu"] = menumenubttn.pack(pady=20)root.mainloop()
以上示例中,为菜单按钮的菜单添加了两个复选按钮、两个单选按钮、两个菜单项。两个单选按钮不能同时选中。
选项菜单
选项菜单 OptionMenu 小组件基本上是一个下拉列表或弹出菜单,在下拉菜单中提供一组预定义的选项,并允许用户一次选择一个选项。。
要创建选项菜单,请使用构造函数:
optionmenu = tk.OptionMenu(master, variable, value, *values, **kwargs)
完整示例
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('OptionMenu 选项菜单演示')option_var = tk.StringVar(root)languages = ['Python', 'JavaScript', 'Java', 'C#', 'C++']def option_changed(*args): output_label['text'] = f'你选择了:{option_var.get()}'option_var.set('Language')label = tk.Label(root, text='请选择你喜欢的编程语言:')label.pack()option_menu = tk.OptionMenu(root, option_var, *languages, command=option_changed)option_menu.pack()output_label = tk.Label(root, text='')output_label.pack()root.mainloop()
option_var:表示选项菜单选择的值;
*languages:表示选项菜单存储所有选项的列表的名称;
get():获取并返回 OptionMenu 中当前选定的选项;
set():设置 OptionMenu 中当前的选项;
动态更新 OptionMenu 选项
如果需要在运行时修改 OptionMenu 内容,比如需要删除旧选项并插入新选项。可以使用 add_command() 和 delete() 方法。
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('OptionMenu 选项菜单演示')option_var = tk.StringVar(root)languages = ('Python', 'JavaScript', 'Java', 'C#', 'C++')def option_changed(*args): output_label['text'] = f'你选择了:{option_var.get()}'def delete(*args): option_menu['menu'].delete(0, 'end')def new(*args): new_options = ["New option 1", "New option 2"] for option in new_options: option_menu['menu'].add_command(label=option, command=tk._setit(option_var, option))option_var.set('Language')label = tk.Label(root, text='请选择你喜欢的编程语言:')label.pack()option_menu = tk.OptionMenu(root, option_var, *languages, command=option_changed)option_menu.pack()output_label = tk.Label(root, text='')output_label.pack()button = tk.Button(root, text='删除', command=delete)button.pack()button = tk.Button(root, text='添加', command=new)button.pack()root.mainloop()OptionMenu 样式设置
OptionMenu 不能直接设置宽度、高度参数,需要使用 config 方法。
option_menu.config(width=10)
option_menu.config(height=2)
OptionMenu 级联菜单
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('OptionMenu 选项菜单演示')primary = tk.StringVar()secondary = tk.StringVar() def menu_changed(*args): if primary.get() == "山东省": secondary.set("济南") secondary_options = ["济南", "青岛", "淄博"] else: secondary.set("南京") secondary_options = ["南京", "苏州"] secondary_menu["menu"].delete(0, "end") for option in secondary_options: secondary_menu["menu"].add_command(label=option, command=tk._setit(secondary, option)) primary_opts = ["山东省", "江苏省"]primary_menu = tk.OptionMenu(root, primary, *primary_opts, command=menu_changed)primary.set("省份")primary_menu.config(width=15)primary_menu.pack()secondary_menu = tk.OptionMenu(root, secondary, "")secondary.set("城市")secondary_menu.config(width=15)secondary_menu.pack()root.mainloop()
OptionMenu 的唯一缺点是它无法处理大数据。由于下拉列表长度受限于屏幕大小,因此,在大量数据的情况下,可以使用 Listbox,因为它提供了滚动功能。
标签: #java按钮的位置 #java按钮的位置设置