Tkinter之Menu组件用法

简介: Tkinter之Menu组件用法

开发工具类桌面应用使用Python、Java这类语言是一种不错的选择,他们的GUI库都可以很好的支持跨平台特性。本系列博客主要总结Tkinter库中提供的UI组件,关于Java的GUI开发,感兴趣的可以在如下系列博客中找到:


https://my.oschina.net/u/2340880/blog?catalog=5647945&temp=1509528194945


   Tkinter中有提供Menu菜单组件中可以添加如下几种组件:


1_动作项:简单的行为按钮,用户点击后会执行相应的方法。


2_子菜单:行为完整的子菜单项。


3_控制按钮:可有选中与非选中状态,用来做开关。


4_单选列表:一组单选按钮。


   为一个窗口添加菜单十分容易,示例代码如下:


root = Tk()

rootMenu = Menu(root)

root.config(menu=rootMenu)


item = Menu(master=rootMenu,postcommand=call,tearoff=1)

rootMenu.add_cascade(menu=item,label="File")

item.add_command(label='new File')

subItem = Menu(item)

subItem.add_command(label="Open in noew window")

item.add_cascade(menu=subItem,label="Open")

效果如下图所示:

image.png



Menu构造函数中第1个参数可以传入菜单所属的窗口或者父菜单,后面可以添加一些菜单配置,例如:


属性 意义

activebackground 活跃时的背景色

activeborderwidth 活跃时的边框宽度

activeforeground 活跃时的前景色

bg 或者 background 正常状态背景色

bd 或者 borderwidth 正常状态变宽宽度

cursor 鼠标样式

disabledforeground 无效状态的前景色

font 菜单字体

fg 或者 foreground 正常状态的前景色

postcommand 设置菜单被唤出时的回调

relief 设置菜单浮雕效果

selectcolor 设置菜单选中颜色

tearoff 可以设置为0和1,表示此菜单是否可以独立出来

tearoffcommand 菜单独立被触发时的回调

title 可设置独立菜单的标题

需要注意,在MacOS系统上,菜单的样式是由系统维护的,上面的大多属性都将没有效果。


   下面这些方法用来进行菜单配置:


#添加一个子菜单 coption为配置选项

add_cascade(coption...)

#添加一个切换按钮 coption为配置选项

add_checkbutton(coption...)

#添加一个功能按钮 coption为配置选项

add_command(coption...)

#添加一个单选按钮 coption为配置选项

add_radiobutton(coption...)

#添加一个分割线

add_separator()

#删除index1 到 index2之间的选项

delete(index1,index2)

#获取菜单某一项的属性值

entrycget(index,coption)

#重新配置菜单中某项的属性

entryconfigure(index,coption...)

#返回参数位置对应的选项索引

index(i)

#在指定位置插入一个子菜单

insert_cascade(index,coption...)

#在指定位置插入一个切换按钮

insert_checkbutton(index,coption...)

#在指定位置插入一个功能按钮

insert_command(index,coption...)

#在指定位置插入一个单选按钮

insert_radiobutton(index,coption...)

#在指定位置插入一个分割线

insert_separator(index)

#代码手动调用一次某个选项

invoke(index)

#在窗口指定位置弹出菜单

post(x,y)

#获取个选项的类型

type(index)

#获取某个选项距离菜单顶部的偏移量

yposition(n)

#添加一个选项 可以是功能按钮,切换按钮,单选按钮或子菜单,由类型确认

#类型可选 cascade checkbutton command radiobutton separator

add(kind,coption)

上面列举方法中的coption用来进行一些配置项的设置,可选配置项如下:


属性名 意义

accelerator 设置快捷键

activebackground 激活状态背景色

activeforeground 激活状态前景色

background 正常状态背景色

bitmap 设置bitmap图标

columnbreak 设置分列

command 设置激活时的回调函数

compound 设置展示文本和图标是的布局方式

font 设置字体

foreground 设置正常状态的前景色

hidemargin 设置是否隐藏外边距 设置True或False

image 设置图片 gif格式

label   设置显示的文本

menu 这个选项只用在添加子菜单中

offvalue 设置checkbutton关闭时的值

onvalue 设置checkbutton开启时的值

selectcolor 设置选中状态的颜色

selectimage 设置选中状态的图像

state    设置选项状态,DISABLED或ACTIVE

underline  设置下划线

value 选项的值

variable 用于单选按钮或切换按钮

 

目录
相关文章
|
4月前
|
Python
Python tkinter的text控件加滚动条
Python tkinter的text控件加滚动条
88 0
|
5月前
|
Shell Python
Tkinter:功能按钮Button
Tkinter:功能按钮Button
|
5月前
|
Python
Python tkinter 初探Toplevel控件搭建父子窗口
Python tkinter 初探Toplevel控件搭建父子窗口
138 0
Python tkinter 初探Toplevel控件搭建父子窗口
|
5月前
|
Python
tkinter之button简单使用
tkinter之button简单使用
42 1
|
5月前
|
Python
tkinter之ListBox示例
tkinter之ListBox示例
45 1
|
JavaScript
Vue中使用element-ui的el-dialog对话框,实现拖拽效果(整理)
Vue中使用element-ui的el-dialog对话框,实现拖拽效果(整理)
|
Python
小白白也能学会的 PyQt 教程 —— 自定义组件 Switch Button
最近在搞 Python 课程设计,想要搞一个好看的 UI,惊艳全班所有人。但打开 Qt Creator,Win7 风格的复古的按钮是在让我难以下手。其次,我因为想要打造一个 Fluent UI 样式的设置页面,需要一个好看的 Switch Button,来用于设置界面部分设置项的转换,于是便决定动手写一个;
8100 1
|
Python Windows 容器
Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法
Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法
189 0
|
Python
Python 初探tkinter下拉和弹出Menu以及选项OptionMenu
Python 初探tkinter下拉和弹出Menu以及选项OptionMenu
146 0
|
前端开发 Python
Python tkinter 之 Scrollbar 与 Listbox、Entry 等控件联用
Python tkinter 之 Scrollbar 与 Listbox、Entry 等控件联用
173 0