Python实现连连看4

server/2024/9/18 13:31:06/ 标签: python, tkinter, pygame, 连连看游戏, 工具栏菜单

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():passmenubar = 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)


http://www.ppmy.cn/server/47812.html

相关文章

SOL 交易机器人基本知识

有没有可以盈利的机器人? 是的,各行各业都有许多盈利机器人。在金融领域,交易机器人被广泛用于自动化投资策略并根据预定义的算法执行交易。这些机器人可以分析市场趋势并做出快速决策,从而可能带来可观的回报。同样,在…

跟着AI学AI_03频域中的时间信息损失

是的,频域表示意味着横轴是频率。频域图展示了信号在不同频率上的分量或成分。具体来说,横轴代表频率(通常以赫兹为单位),纵轴代表这些频率成分的幅度或功率。 详细解释 时域图 横轴(X轴)&am…

支持向量机、随机森林、K最近邻和逻辑回归-九五小庞

支持向量机(Support Vector Machine, SVM)、随机森林(Random Forest)、K最近邻(K-Nearest Neighbors, KNN)和逻辑回归(Logistic Regression)是机器学习和统计学习中常用的分类算法。…

如果小孩对什么也不感兴趣,只爱看手机和电脑 怎么办?怎样培养孩子兴趣?兴趣有哪些可以选择?如何快速找到定位小孩的兴趣?

自古到今,生存都很艰难!不论是动物还是人 得看小孩兴趣,有些爱读书,有些爱踢球,就怕啥也不爱,只看手机和电脑的,想卷都没个方向。 特长:是你从60亿人中不一样的地方。突出才易于生…

如何通过PHP语言实现远程控制多路照明

如何通过PHP语言实现远程控制多路照明呢? 本文描述了使用PHP语言调用HTTP接口,实现控制多路照明,通过多路控制器,可独立远程控制多路照明。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂…

springboot 作为客户端接收服务端的 tcp 长连接数据,并实现自定义结束符,解决 粘包 半包 问题

博主最近的项目对接了部分硬件设备,其中有的设备只支持tcp长连接方式传输数据,博主项目系统平台作为客户端发起tcp请求到设备,设备接收到请求后作为服务端保持连接并持续发送数据到系统平台。 1.依赖引入 连接使用了netty,如果项…

Renesas MCU之定时器计数功能应用

目录 概述 1 功能介绍 1.1 时钟相关配置 1.2 应用接口 2 FSP配置Project参数 2.1 软件版本信息 2.2 配置参数 2.3 项目生成 3 定时器功能代码实现 3.1 定时器初始化函数 3.2 定时器回调函数 4 功能测试 5 参考文档 概述 本文主要介绍Renesas MCU的定时器功能的基…

如何构建终极的AI自动化系统:多代理协作指南

自GPT Researcher首次发布以来,仅仅一年时间,构建、测试和部署AI代理的方法已经取得了显著进步。从最初的zero-shot或few-shot prompting,迅速发展到代理的function calling、RAG,再到现在的Agent工作流(也称为flow en…

2022.9.26DAY678

课程学习:《数据处理技术》讲了“数据查询”的语法格式,语法格式也算是简单,就是没能跟之前的内容联系起来,之前的内容没有及时回顾。 高等数学:“ 函数的概念”,讲了函数的概念,反函数&#…

网关(Gateway)- 内置过滤器工厂

官方文档:Spring Cloud Gateway 内置过滤器工厂 AddRequestHeaderGatewayFilterFactory 为请求添加Header Header的名称及值 配置说明 server:port: 8088 spring:application:name: api-gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8847username: nacos…

Facebook代理开户Facebook海外户是什么?

在数字营销领域中,Facebook作为全球最大的社交媒体平台之一,可以帮助企业扩展其全球受众。在使用Facebook时,一些企业可能会选择创建海外户来利用它的一些优势。 一、什么是Facebook海外户? Facebook海外户是指在海外注册的Face…

html中 table的 colspan和rowspan

Colspan 单元格跨越多列; Rowspan 单元格跨越多行 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> </head> <body><h4>单元格跨两列:</h4> <table border"1"&…

M4芯片MacBook可以装Windows 如何使用CrossOver安装Windows应用

一、M4芯片首发 2024年5月7日&#xff0c;苹果公司再次成为科技界的焦点&#xff0c;正式推出了全新的M4芯片。这款芯片不仅是苹果下一代硅芯片的代表&#xff0c;更是苹果从头开始为人工智能构建的重要成果。 M4芯片的成功也进一步证明了苹果公司在创新和技术领导力方面的实力…

泛型知识汇总

演示代码&#xff1a; package exercise;import java.util.Arrays;public class MyArrayList<E> {Object[] obj new Object[10];int size;public boolean add(E e) {obj[size] e;size;return true;}public E get(int index) {return (E) obj[index];}//没有这个函数&a…

嵌入式linux系统中图片处理详解

大家好,今天给大家分享一下,嵌入式中如何进行图像处理,常见的处理方式有哪几种?这次将详细分析一下 第一:BMP图形处理方式 图形的基本特点,所有的图像文件,都是一种二进制格式文件,每一个图像文件,都可以通过解析文件中的每一组二进制数的含义来获得文件中的各种信息…

Java高级---Spring Boot---3快速入门

3 Spring Boot快速入门 3.1 创建第一个Spring Boot项目 使用IntelliJ IDEA和Spring Initializr创建项目 打开IntelliJ IDEA 并选择 “Start a new project”。在新建项目向导中&#xff0c;选择 “Spring Initializr”。填写项目基本信息&#xff1a; Group: 定义项目组&…

黄仁勋:打破摩尔定律,机器人时代来了

6月2日&#xff0c;英伟达联合创始人兼首席执行官黄仁勋在Computex 2024&#xff08;2024台北国际电脑展&#xff09;上发表主题演讲&#xff0c;分享了人工智能时代如何助推全球新产业革命。 以下为本次演讲的要点&#xff1a; ①黄仁勋展示了最新量产版Blackwell芯片&#…

IP 分片过程及偏移量计算

IP 报头中与分片相关的三个字段 1、 标识符&#xff08; ldentifier )&#xff1a;16 bit 该字段与 Flags 和 Fragment Offest 字段联合使用&#xff0c; 对较大的上层数据包进行分段&#xff08; fragment &#xff09; 操作。 路由器将一个包拆分后&#xff0c;所有拆分开的…

深入探究 threejs 中的材质与纹理应用

深入探究 threejs 中的材质与纹理应用 一、引言 在三维图形开发领域&#xff0c;Three.js 是一个强大而受欢迎的库。其中&#xff0c;材质与纹理的应用对于创建逼真和吸引人的三维场景起着至关重要的作用。通过对材质和纹理的巧妙运用&#xff0c;可以极大地增强模型的视觉效…

视觉SLAM

二、视觉SLAM十四讲&#xff1a;从理论到实践 第二版 电子版PDF 链接&#xff1a;https://pan.baidu.com/s/1VsrueNrdqmzTvh-IlFBr9Q 提取码&#xff1a;vfhe 源码 Gitee链接&#xff1a;https://gitee.com/gnef233/slambook2.git SLAM领域超实用开源方案汇总一