有pygame模板的python在线编程(python的tkinter和pygame自制音乐播放器的代码解析)
1.说明:
1.1 推荐环境:python3.8、微软vscode编辑器、pygame模块
1.2 熟悉tkinter的相关布局,gif导入、图片导入、路径文件导入,音乐播放和按钮、标签的使用。
1.3 推荐指数:★★
2 效果图:
3.代码:
#---导出模块---
from tkinter import *
from tkinter import filedialog
from pygame.locals import *
import pygame
import sys
import os
import time
#---游戏初始化和窗口的定义、标题、大小设置---
pygame.init()
root = Tk()#窗口
root.title("音乐播放器")#标题
root.geometry("1000x800 400 200")#更改大小和位置
#---gif的动画设置和插入---
numIdx = 6 # gif的帧数
# 填充6帧内容到frames,注意111.gif路径
frames = [PhotoImage(file='/home/xgj/Desktop/音乐播放器/111.gif', format='gif -index %i' %(i)) for i in range(numIdx)]
# 定时器函数
def update(idx):
frame = frames[idx]
idx = 1 # 下一帧的序号:在0,1,2,3,4,5之间循环(共6帧)
label.configure(image=frame) # 显示当前帧的图片
root.after(100, update, idx%numIdx) # 0.1秒(100毫秒)之后继续执行定时器函数(update)
label = Label(root)
label.pack()
root.after(0, update, 0) # 立即启动定时器函数(update)
#---增加背景图片---注意bj的路径设置
photo = PhotoImage(file="/home/xgj/Desktop/音乐播放器/bj.png")
theLabel = Label(root,text="欢乐源泉,\n自定义开心",justify=LEFT,
image=photo,compound = CENTER,font=("华文行楷",20),fg = "green")
#个人喜欢用place来布局位置
theLabel.place(x=10,y=500)
#---定义按钮功能的函数---
def pause():
pygame.mixer.music.pause()
def stop():
pygame.mixer.music.stop()
def start():
pygame.mixer.music.unpause()
def callback():
file = filedialog.askopenfilename()
#调出路径,打开音乐文件
track = pygame.mixer.music.load(file)
pygame.mixer.music.play()
#---按钮设置:位置、名字、命令功能等
b = Button(root,text = "选择音乐",bg='yellow',command = callback)
b.place(x=10,y=10)
f =Button(root,text = "暂停",bg='yellow',command = pause)
f.place(x=10,y=50)
bs =Button(root,text = "继续",bg='yellow',command = start)
bs.place(x=10,y=90)
bst =Button(root,text = "停止",bg='yellow',command = stop)
bst.place(x=10,y=130)
l = Label(root, text="欢迎来到自定义音乐播放器!",bg='pink',fg='blue')
l.place(x=10,y=180)
#---循环启动---
root.mainloop()
4.所用到的gif和bg图:
5.希望喜欢,分享出来,也可以在这基础上DIY,自己继续改进和美化。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com