Python-GUI-Project钢琴应用:Tkinter结合音频播放打造多媒体GUI钢琴

📅 2026/8/25 10:41:03
Python-GUI-Project钢琴应用:Tkinter结合音频播放打造多媒体GUI钢琴
Python-GUI-Project钢琴应用Tkinter结合音频播放打造多媒体GUI钢琴【免费下载链接】Python-GUI-ProjectA Repositry that contains 20 GUI Projects on python Tkinter项目地址: https://gitcode.com/gh_mirrors/py/Python-GUI-Project在 Python-GUI-Project 这个包含 20 个 Tkinter 桌面项目的合集里最有趣的案例之一就是钢琴应用它用tkinter画出 23 个琴键按钮再用playsound播放对应的 mp3 音频实现点键即发声的多媒体 GUI 体验。全文不到 30 行代码是新手学习 Tkinter 事件绑定与音频播放的绝佳入门范例。Tkinter Python GUI 项目多媒体应用创意示意/—Pngtree—vector creative hot news tag_4265321.png)项目结构一个琴键对应一个 mp3 文件钢琴应用位于仓库的Piano Application/目录下结构非常直观文件作用Piano Application/piano.py钢琴 GUI 主程序仅 30 行Piano Application/Piano1.mp3~Piano23.mp323 个琴键的音频素材Piano Application/piano.png窗口顶部的钢琴装饰图核心思路第 N 个按钮触发播放PianoN.mp3文件名与按钮序号一一对应天然避免了复杂的资源管理逻辑。快速运行步骤1️⃣ 克隆仓库git clone https://gitcode.com/gh_mirrors/py/Python-GUI-Project2️⃣ 安装依赖Tkinter 随 Python 自带无需额外安装pip install playsound pillow3️⃣ 进入钢琴目录并运行cd Piano Application python piano.py窗口固定为 700x300代码中用minsize与maxsize锁死尺寸23 个琴键从左到右一字排开点击任意琴键即可听到对应音高。代码拆解琴键生成与声音触发钢琴主程序 的精华只有三处窗口初始化root.geometry(700x300)设定画布并用 PIL 的ImageTk.PhotoImage加载piano.png作为标题区装饰。piano类封装琴键构造函数接收序号index用reliefRAILED凸出边框模拟立体按键鼠标悬停显示hand2小手光标交互感拉满。class piano(): def PianoSound(self, sound): playsound(fPiano{sound}.mp3) def __init__(self, index): self.index index if self.index % 2 ! 0: Button(frame1, padx10, pady100, bgblack, fgwhite, reliefRAISED, commandlambda: self.PianoSound(self.index), cursorhand2).grid(row0, columnindex)黑白键交替利用index % 2判断奇偶奇数键黑色、偶数键白色视觉上还原真实钢琴的键盘节奏。循环批量创建for i in range(1, 24): piano(i)一行代码生成 23 个键grid自动把它们横向排进frame1框架。 细节提醒commandlambda: self.PianoSound(self.index)中用 lambda 延迟求值这是 Tkinter 按钮绑定每个键各自音高的经典写法——直接传self.index会导致所有键都变成同一个音。这个 Demo 为什么值得学多模态 GUI 入门Tkinter 负责看playsound 负责听一次学会把图形与音频组合起来。类封装 批量构造一个类 一个 for 循环就完成 23 个控件是学习用循环造控件的好例子。可扩展性强想加第 24 个音把循环上限改成range(1, 25)并补一个Piano24.mp3即可。顺道探索仓库里的其他 Tkinter 作品同一个仓库还有 20 个 GUI 项目适合作为 Tkinter 学习的练习题库比如计费系统完整的表单 列表 文本域布局是学习复杂界面分区的好素材位于Billing System/billing_system.py。Tkinter Python GUI 项目Billing System 计费系统界面新闻头条应用Tkinter NewsAPI 抓取实时新闻Instant News Headlines (Tkinter NewsApi)/main.py记事本、绘图板、计算器、天气查询、日历、货币换算等详见根目录 README 的 Projects List 章节。常见问题 FAQQ想换成自己的音效怎么办直接替换PianoN.mp3文件即可文件名保持Piano 序号 .mp3的格式不变。QLinux 下 playsound 播放失败playsound依赖系统音频栈Linux 用户可改用pygame.mixer或simpleaudio播放 mp3把PianoSound方法里的播放调用替换即可其余代码完全不动。Q窗口尺寸能调整吗可以删掉minsize/maxsize两行但注意grid布局在拉伸后琴键间距会变化建议同步调整padx参数。写在最后从 30 行钢琴代码出发你已经掌握了 Tkinter 的窗口、框架、按钮、事件绑定四大基本功。接下来不妨挑战仓库里的绘图板或记事本项目——多媒体 GUI 的大门就从这一次按键发声打开了。【免费下载链接】Python-GUI-ProjectA Repositry that contains 20 GUI Projects on python Tkinter项目地址: https://gitcode.com/gh_mirrors/py/Python-GUI-Project创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考