Python实现连连看4

2.2.2 添加复合菜单项

复合菜单项即为图4和图5所示的"新游戏"项和"音乐"项,包含了子菜单,当点击该项时,会弹出响应的子菜单。添加复合菜单项时,首先创建该复合菜单的子菜单,接下来将该子菜单与工具栏菜单关联。

(1)创建复合菜单的子菜单

以创建图5所示的"音乐"项为例,该项的子菜单包含了"音乐开"和"音乐关"两项,其代码如下所示。

python 复制代码
MENU_MUSIC_ON = '音乐开'
MENU_MUSIC_OFF = '音乐关'

music_menu = tkinter.Menu(menubar, tearoff=0, bg=MENU_BGCOL, fg=MENU_FGCOL)
music_menu.add_command(label=MENU_MUSIC_ON, command=music_on)
music_menu.add_command(label=MENU_MUSIC_OFF, command=music_off)

其中,music_menu即为创建的子菜单,通过add_command()方法将"音乐开"和"音乐关"两项添加到子菜单中,当玩家点击了"音乐开"时,会调用自定义函数music_on;当玩家点击了"音乐关"时,会调用自定义函数music_off。创建子菜单项的详细描述请参考《Python中tkinter编程入门7》。

(2)关联子菜单与工具栏菜单

在创建了子菜单之后,通过如下代码将子菜单与工具栏菜单关联。

python 复制代码
MENU_MUSIC = '音乐'

menubar.add_cascade(label=MENU_MUSIC, menu=music_menu)

其中,menubar是工具栏菜单,music_menu是子菜单。关联子菜单与工具栏菜单的详细描述请参考《Python中tkinter编程入门7》。

创建"新游戏"项的方法与上述步骤相同。

2.3 关联工具栏菜单与游戏界面

在创建好工具栏菜单之后,需要将其与游戏界面关联,代码如下所示。其中,root是游戏窗口界面,menubar是创建好的工具栏菜单。关联工具栏菜单与游戏界面的详细说明吗,请参考《Python中tkinter编程入门7》。

python 复制代码
root.configure(menu=menubar)

2.4 相关代码

为游戏界面添加工具栏菜单的代码如下所示。

python 复制代码
MENU_BGCOL = 'lightgrey'
MENU_FGCOL = 'black'
MENU_NEWGAME = '新游戏'
MENU_NEWGAME_START = '开始游戏'
MENU_MUSIC = '音乐'
MENU_MUSIC_ON = '音乐开'
MENU_MUSIC_OFF = '音乐关'
MUSIC_FILE = 'res/1.mp3'
MENU_HINT = '提示'

def file_new():
    pass
def music_on():
    pass    
def music_off():
    pass
def hint():
    pass

menubar = tkinter.Menu(root, bg=MENU_BGCOL, fg=MENU_FGCOL)
file_menu = tkinter.Menu(menubar, tearoff=0, bg=MENU_BGCOL, fg=MENU_FGCOL)
file_menu.add_command(label=MENU_NEWGAME_START, command=file_new)
menubar.add_cascade(label=MENU_NEWGAME, menu=file_menu)

music_menu = tkinter.Menu(menubar, tearoff=0, bg=MENU_BGCOL, fg=MENU_FGCOL)
music_menu.add_command(label=MENU_MUSIC_ON, command=music_on)
music_menu.add_command(label=MENU_MUSIC_OFF, command=music_off)
menubar.add_cascade(label=MENU_MUSIC, menu=music_menu)

menubar.add_command(label=MENU_HINT, command=hint)

root.configure(menu=menubar)
相关推荐
梧桐树04294 小时前
python常用内建模块:collections
python
Dream_Snowar4 小时前
速通Python 第三节
开发语言·python
蓝天星空5 小时前
Python调用open ai接口
人工智能·python
jasmine s5 小时前
Pandas
开发语言·python
郭wes代码5 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
leaf_leaves_leaf5 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零15 小时前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
404NooFound6 小时前
Python轻量级NoSQL数据库TinyDB
开发语言·python·nosql
天天要nx6 小时前
D102【python 接口自动化学习】- pytest进阶之fixture用法
python·pytest
minstbe6 小时前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机