前言
Python的Tkinter(Tk接口)是一个用于创建图形用户界面(GUI)的标准库。它是Python的内置模块,无需额外安装即可使用。Tkinter提供了一组部件(如按钮、标签、文本框等)和布局管理器,使开发GUI应用程序变得简单和便捷。
Tkinter是一个功能强大且简单易用的库,适合构建轻量级的GUI应用程序。它在不同的操作系统上具有相同的外观和行为,因此可以实现跨平台的应用程序。
下面的一些程序展示就是用tkinter做的
代码实现
今天要做的就是上面的简易音乐播放器
先导入需要用到的模块
import tkinter as tk
from pygame import mixer
import os
os
模块是自带的,另外的两个都需要安装
做一个大小合适的窗口
root = tk.Tk()
root.title('音乐播放器')
root.geometry('440x570+200+200')
root.mainloop()
这样就可以得到一个大小合适的窗口,然后再上个底色和图标
root.iconbitmap('music.ico')
root['background'] = '#6175d6'
img = tk.PhotoImage(file='img\\封面.png')
tk.Label(root, image=img, bg='#6175d6').pack()
现在设置需要的功能按键
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
打开指定文件夹获取文件夹下所有文件名称
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()
按键功能
音乐暂停/取消暂停
def stop():
mixer.music.pause()
def cancel():
mixer.music.unpause()
切换音乐上一首
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()
切换音乐下一首
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)
控制音乐音量增大
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)
控制音乐音量降低
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应用程序。