1 说明:
1.1 锻炼python思维,小白级别,大神请飘过,讲解的通俗易懂。
1.2 python3.8,tkinter自带,在制作音乐*放播**器的时候需要歌词滚动*放播**,基于此,为本次设计出发点。
1.3 顺带复习python的基础知识,在代码的注释中,适合收藏和转发,慢慢品味,本人亲测过。

2 常规音乐*放播**器歌词显示如下

3 用python实现,试试看看。
4 首先需要了解和掌握:tkinter的Text如何实时显示insert的内容的方法。
4.1 代码一:1.py
'''
#方法一
from tkinter import *
import time
root = Tk()
t = Text(root)
t.pack()
# 从0~100取整数,range函数
# iter函数用来生成迭代器
# 唯一需要注意下的就是next中必须控制iterator的结束条件,不然就死循环了
it = iter(range(100))
while True:
#tk的窗口的文本text显示的是打印0~99的偶数
t.insert(END,str(next(it))+'\n') #可是到了46,就不动了
#终端打印0~99的奇数
print(next(it))
root.update() #窗口需要更新
time.sleep(1)
root.mainloop()
'''
#方法二
import tkinter as tk
import time
root = tk.Tk()
t = tk.Text(root)
t.pack()
it = iter(range(100))
while True:
t.insert(tk.END,str(next(it))+'\n')
print(next(it))
root.update()
time.sleep(1)
root.mainloop()
4.2 效果图

46时就不能显示继续的偶数,看不到了,bug
4.3 解决上面的这个bug
4.4 代码二:2.py
from tkinter import *
import time
root = Tk()
t = Text(root)
t.pack()
#定义goon函数
def Go_on():
for i in range(50):
t.insert(END,'a_'+str(i)+'\n')
time.sleep(0.1)
t.see(END) #关键点
t.update()
#定义按钮
goBtn = Button(text = "Go!",command = Go_on)
goBtn.pack()
root.mainloop()
4.5 效果图

================================
基础知识是不是很枯燥呀!那就来实战代码
================================
5 准备
5.1 音乐文件mp3和lrc自己准备,网上去*载下**。
5.2 本机是:梦然的“少年.mp3”和歌词lrc结构如下

5.3 读取lrc文件和*放播**mp3音乐文件的音乐*放播**器,以前我讲过。
5.4 代码3.py
#---第1步:导出模块---
import pygame
import time
import tkinter as tk
#---第2步:窗口的相关初始化定义---
root=tk.Tk()
#主窗口的标题定义
root.title('tk音乐显示歌词的*放播**器')
#大小:2000x1200和坐标:x=500,y=0
root.geometry("2000x1200+500+0")
#---第3步:歌词动态显示框的定义和布局---
text_1=tk.Text(root,height=12,width=64,font=('楷体',12,'bold'),bg='black',fg='yellow')
text_1.place(x=600,y=50)
#---第4步:打开歌词lrc文件
with open("/home/xgj/Desktop/pythonsn11/sn.lrc","r") as f:
lrc_list = f.readlines()
#将列表转换为字符串,重点讲解
strLrc=''.join(lrc_list)
#定义一个存放lrc歌词的空的字典
dictLrc = {}
# 对歌词进行按行切割
lineListLrc = strLrc.splitlines()
# 遍历每一行歌词
for lineLrc in lineListLrc:
# 时间和歌词分开
listLrc = lineLrc.split("]")
timeLrc = listLrc[0][1:].split(':')
# 转换时间格式
times = float(timeLrc[0]) * 60 + float(timeLrc[1])
# 把时间当做key,歌词当做value存放在字典中
dictLrc[times] = listLrc[1]
tempTime = 0
# 音频初始化
pygame.mixer.init()
# 加载音频文件路径 (路径必须真实存在,音频文件格式支持mp3/ogg等格式)
pygame.mixer.music.load('/home/xgj/Desktop/pythonsn11/sn.mp3')
for key in dictLrc.keys():
tempTime = key - tempTime
# 判断是否在*放播**音乐
if not pygame.mixer.music.get_busy():
pygame.mixer.music.play()
# 歌词显示的时间
time.sleep(tempTime)
# 终端显示歌词
print(dictLrc[key]) #这个不够满意,所以需要窗口界面化显示歌词
tempTime = key
#----------------重点---------------------------------------------
#tkinter的知识:text.insert(index,string) index = x.y的形式,x表示行,y表示列
#方法一:不正常,有bug
#text_1.insert(1.0,dictLrc[key]+ '\n') #倒着歌词显示,自己可以试试看看
#方法二:符合正常
text_1.insert(tk.END,dictLrc[key]+ '\n')
text_1.see(tk.END) #方法二的关键点
#----------------重点---------------------------------------------
root.update()
tk.mainloop()
5.5 效果图

6 搞定,分享出来,打好基础。喜欢就收藏和转发,慢慢品味,思考。