1. 使用的模块
from tkinter import Frame, Tk, Button, Label, Listbox
from tkinter.font import Font
from PIL import Image, Image TK # Image Tk.PhotoImage()
import os
import pygame
from datetime import datetime
from threading import Tread
import time
2. 窗口创建,窗口和组件( 小部件 ) 之间的关系
顶层窗口 : master = Tk()
组件在创建时,必须指定它的父窗口(指定上下级关系):
listFrame = Frame(master)
nameLabel = Label (listFrame)
3. 组件或小部件装载到窗口(布局)
1.pack() # 分为 TOP,BOTTOM,LEFT,RIGHT 来装载显示
指定side=LEFT|RIGHT|TOP|BOTTOM
2.grid() #以表格方式(行、列)装载显示。
指定row, column
*** 注意:在同一个窗口(或Frame)中,直接子部件或组件的布局方式必须统一
4. 小部件的时间处理
在创建Button等可处理事件的部件时,可以在构造函数中传入一个command属性,属性值是一个有效的函数或者方法名,也可以通过部件对象方式,如 playBtn['command'] = play
5.(在部件中)显示图片
img = Image.open('xxx.jpg') # img 需要转换格式,图片太大时,可以使用img,resize(width,height), Image.ANTIALIAS)
imgPhoto = ImageTk.PhotoImage(img)
imgLabel = Lable(image = imgPhoto)
6. 创建线程(子线程)和启动线程(显示歌词的时候调用的线程)
tt= Thread(target=运行的函数名,args=(函数参数列表, ), kwargs= {}) # 子线程
tt.start() # 启动线程,线程启动之后,则会运行target指定的函数,当函数运行结束时,则线程也会停止,强行等待线程结束(主线程): tt.join() #阻塞当前线程的执行,一直等待(主)子线程完成,再执行下一行代码。
7. pygame 音乐的播放
1.) pygame.mixer.init() # 初始化音视频的合成器
2.) pygame.mixer.music.load(path) # 加载音乐文件
3.) pygame.mixer.music.play() # 播放
4.) pygame.mixer.music.pause() # 暂停
5.) pygame.mixer.music.unpause() #取消暂停
6). pygame.mixer.music.stop() # 停止
7). pygame.mixer.music.get_pos( ) #获取当前正在播放的位置(时间,毫秒)
8). pygame.mixer.music.set_pos(ms) #设置当前播放的位置