前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >酷炫音乐盒: 使用Python和Tkinter打造自己的音乐播放器

酷炫音乐盒: 使用Python和Tkinter打造自己的音乐播放器

作者头像
松鼠爱吃饼干
发布2023-09-14 15:22:18
4940
发布2023-09-14 15:22:18
举报
文章被收录于专栏:Python分享

前言

Python的Tkinter(Tk接口)是一个用于创建图形用户界面(GUI)的标准库。它是Python的内置模块,无需额外安装即可使用。Tkinter提供了一组部件(如按钮、标签、文本框等)和布局管理器,使开发GUI应用程序变得简单和便捷。

Tkinter是一个功能强大且简单易用的库,适合构建轻量级的GUI应用程序。它在不同的操作系统上具有相同的外观和行为,因此可以实现跨平台的应用程序。

下面的一些程序展示就是用tkinter做的

代码实现

今天要做的就是上面的简易音乐播放器

先导入需要用到的模块

代码语言:javascript
复制
import tkinter as tk
from pygame import mixer
import os

os模块是自带的,另外的两个都需要安装

做一个大小合适的窗口

代码语言:javascript
复制
root = tk.Tk()
root.title('音乐播放器')
root.geometry('440x570+200+200')

root.mainloop()

这样就可以得到一个大小合适的窗口,然后再上个底色和图标

代码语言:javascript
复制
root.iconbitmap('music.ico')
root['background'] = '#6175d6'

img = tk.PhotoImage(file='img\\封面.png')
tk.Label(root, image=img, bg='#6175d6').pack()

现在设置需要的功能按键

代码语言:javascript
复制
frame_1 = tk.Frame(bg='#6175d6')
frame_1.pack(pady=10)
tk.Button(frame_1, text='上一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT)
tk.Button(frame_1, text='播放', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT, padx=40)
tk.Button(frame_1, text='下一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat', command=next).pack(
    side=tk.LEFT)

frame_2 = tk.Frame(bg='#6175d6')
frame_2.pack(pady=10)
tk.Button(frame_2, text='音量↑', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat'
          ).pack(side=tk.LEFT)
tk.Button(frame_2, text='暂停', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT, padx=20)
tk.Button(frame_2, text='继续', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT, padx=20)
tk.Button(frame_2, text='音量↓', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat'
          ).pack(side=tk.LEFT)

读取音乐

完善方向是加上排序功能,music是音乐文件夹 os.listdir 打开指定文件夹获取文件夹下所有文件名称

代码语言:javascript
复制
def music_list(): 
    lists = []  
    for i in os.listdir('music'):
        if os.path.splitext(i)[-1] == '.mp3':
            lists.append(i)
        else:
            pass
    return lists


def name_now():  # 当前播放音乐名称
    name1 = music_list()[num]
    song_name = name1.split(' - ')[-1][:-4]
    singer = name1.split(' - ')[0]
    return name1, song_name, singer


def play():
    mixer.init()
    size = 0.5
    name, song_name, singer = name_now()
    mixer.music.set_volume(size)
    mixer.music.load(f'music/{name}')
    mixer.music.play()

按键功能

音乐暂停/取消暂停
代码语言:javascript
复制
def stop(): 
    mixer.music.pause()

def cancel(): 
    mixer.music.unpause()
切换音乐上一首
代码语言:javascript
复制
def last():  
    global num
    mixer.init()
    mixer.music.stop()
    if 0 <= num <= len(music_list()) - 2:
        num += 1
    elif num >= len(music_list()) - 1:
        num = 0
    name1, song_name, singer = name_now()
    song_name_va.set(f'{song_name}')
    singer_va.set(f'{singer}')
    play()
切换音乐下一首
代码语言:javascript
复制
def next(): 
    global num
    mixer.init()
    mixer.music.stop()
    if 0 < num <= len(music_list()) - 1:
        num -= 1
    elif num <= 0:
        num = len(music_list()) - 1
    name1, song_name, singer = name_now()
    song_name_va.set(f'{song_name}')
    singer_va.set(f'{singer}')
    play()  # place(x=20, y=550)
控制音乐音量增大
代码语言:javascript
复制
def soundsize_up(): 
    global size
    if -0.1 < size < 1:
        size += 0.1
        # print(size)  # 验证音量
        mixer.music.set_volume(size)
    else:
        size += 0
        # print(size)
        mixer.music.set_volume(size)
控制音乐音量降低
代码语言:javascript
复制
def soundsize_down(): 
    global size
    if 0 < size < 1.1:
        size -= 0.1
        # print(size)
        mixer.music.set_volume(size)
    else:
        size -= 0
        # print(size)
        mixer.music.set_volume(size)

Tkinter是一个功能强大且简单易用的库,适合构建轻量级的GUI应用程序。它在不同的操作系统上具有相同的外观和行为,因此可以实现跨平台的应用程序。

当然,Tkinter还有更多的功能和细节,通过阅读官方文档和教程,你可以更深入地了解和学习如何运用Tkinter来创建各种GUI应用程序。

前言

Python的Tkinter(Tk接口)是一个用于创建图形用户界面(GUI)的标准库。它是Python的内置模块,无需额外安装即可使用。Tkinter提供了一组部件(如按钮、标签、文本框等)和布局管理器,使开发GUI应用程序变得简单和便捷。

Tkinter是一个功能强大且简单易用的库,适合构建轻量级的GUI应用程序。它在不同的操作系统上具有相同的外观和行为,因此可以实现跨平台的应用程序。

下面的一些程序展示就是用tkinter做的

代码实现

今天要做的就是上面的简易音乐播放器

先导入需要用到的模块

代码语言:javascript
复制
import tkinter as tk
from pygame import mixer
import os

os模块是自带的,另外的两个都需要安装

做一个大小合适的窗口

代码语言:javascript
复制
root = tk.Tk()
root.title('音乐播放器')
root.geometry('440x570+200+200')

root.mainloop()

这样就可以得到一个大小合适的窗口,然后再上个底色和图标

代码语言:javascript
复制
root.iconbitmap('music.ico')
root['background'] = '#6175d6'

img = tk.PhotoImage(file='img\\封面.png')
tk.Label(root, image=img, bg='#6175d6').pack()

现在设置需要的功能按键

代码语言:javascript
复制
frame_1 = tk.Frame(bg='#6175d6')
frame_1.pack(pady=10)
tk.Button(frame_1, text='上一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT)
tk.Button(frame_1, text='播放', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT, padx=40)
tk.Button(frame_1, text='下一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat', command=next).pack(
    side=tk.LEFT)

frame_2 = tk.Frame(bg='#6175d6')
frame_2.pack(pady=10)
tk.Button(frame_2, text='音量↑', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat'
          ).pack(side=tk.LEFT)
tk.Button(frame_2, text='暂停', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT, padx=20)
tk.Button(frame_2, text='继续', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack(
    side=tk.LEFT, padx=20)
tk.Button(frame_2, text='音量↓', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat'
          ).pack(side=tk.LEFT)

读取音乐

完善方向是加上排序功能,music是音乐文件夹 os.listdir 打开指定文件夹获取文件夹下所有文件名称

代码语言:javascript
复制
def music_list(): 
    lists = []  
    for i in os.listdir('music'):
        if os.path.splitext(i)[-1] == '.mp3':
            lists.append(i)
        else:
            pass
    return lists


def name_now():  # 当前播放音乐名称
    name1 = music_list()[num]
    song_name = name1.split(' - ')[-1][:-4]
    singer = name1.split(' - ')[0]
    return name1, song_name, singer


def play():
    mixer.init()
    size = 0.5
    name, song_name, singer = name_now()
    mixer.music.set_volume(size)
    mixer.music.load(f'music/{name}')
    mixer.music.play()

按键功能

音乐暂停/取消暂停
代码语言:javascript
复制
def stop(): 
    mixer.music.pause()

def cancel(): 
    mixer.music.unpause()
切换音乐上一首
代码语言:javascript
复制
def last():  
    global num
    mixer.init()
    mixer.music.stop()
    if 0 <= num <= len(music_list()) - 2:
        num += 1
    elif num >= len(music_list()) - 1:
        num = 0
    name1, song_name, singer = name_now()
    song_name_va.set(f'{song_name}')
    singer_va.set(f'{singer}')
    play()
切换音乐下一首
代码语言:javascript
复制
def next(): 
    global num
    mixer.init()
    mixer.music.stop()
    if 0 < num <= len(music_list()) - 1:
        num -= 1
    elif num <= 0:
        num = len(music_list()) - 1
    name1, song_name, singer = name_now()
    song_name_va.set(f'{song_name}')
    singer_va.set(f'{singer}')
    play()  # place(x=20, y=550)
控制音乐音量增大
代码语言:javascript
复制
def soundsize_up(): 
    global size
    if -0.1 < size < 1:
        size += 0.1
        # print(size)  # 验证音量
        mixer.music.set_volume(size)
    else:
        size += 0
        # print(size)
        mixer.music.set_volume(size)
控制音乐音量降低
代码语言:javascript
复制
def soundsize_down(): 
    global size
    if 0 < size < 1.1:
        size -= 0.1
        # print(size)
        mixer.music.set_volume(size)
    else:
        size -= 0
        # print(size)
        mixer.music.set_volume(size)

Tkinter是一个功能强大且简单易用的库,适合构建轻量级的GUI应用程序。它在不同的操作系统上具有相同的外观和行为,因此可以实现跨平台的应用程序。

当然,Tkinter还有更多的功能和细节,通过阅读官方文档和教程,你可以更深入地了解和学习如何运用Tkinter来创建各种GUI应用程序。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-08 21:39,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 下面的一些程序展示就是用tkinter做的
    • 代码实现
      • 先导入需要用到的模块
        • 做一个大小合适的窗口
          • 现在设置需要的功能按键
            • 读取音乐
              • 按键功能
              • 前言
                • 下面的一些程序展示就是用tkinter做的
                • 代码实现
                  • 先导入需要用到的模块
                    • 做一个大小合适的窗口
                      • 现在设置需要的功能按键
                        • 读取音乐
                          • 按键功能
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档