|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#引入需要的库
from tkinter import *
from unicodedata import name
import tkinter as tk
import os
import tkinter.messagebox as messagebox
#定义大类
class SongInformation:
def __init__(self, song,singer,time):
self.song=song
self.singer=singer
self.time=time
songs=[]
filename="song.txt"
file=open(filename,'r',encoding='utf-8')
if file:
line=file.readline()
while line!='':
list1=line.split()
if list1:
string1=list1[0]
if string1=='':
continue
if string1!='':
string2=list1[1]
string3=list1[2]
songs.append(SongInformation(string1,string2,string3))
line=file.readline()
file.close()
#制作主页并制作跳转功能
def menu():
top=tk.Tk()
top.title("歌曲信息管理系统")
top.geometry('280x280')
btn1=tk.Button(top,text="录入歌曲信息",
command=lambda:[top.quit,insert()])
btn2=tk.Button(top,text="删除歌曲信息",
command=lambda:[top.quit,dele()])
btn3=tk.Button(top,text="根据歌手分组",
command=lambda:[top.quit,singer()])
btn4=tk.Button(top,text="浏览歌曲信息",
command=lambda:[top.quit,browse()])
btn5=tk.Button(top,text="查询歌曲信息",
command=lambda:[top.quit,search()])
btn6=tk.Button(top,text="退出管理系统",
command=top.destroy)
btn1.pack()
btn2.pack()
btn3.pack()
btn4.pack()
btn5.pack()
btn6.pack()
top.mainloop()
#跳转界面
#录入界面设置
def insert():
insert=tk.Tk()
insert.title('录入歌曲界面')
label1=tk.Label(insert,text="输入歌曲名称:")
label1.grid(row=1,column=1)
song1=tk.StringVar()
song2=tk.Entry(insert,textvariable=song1)
song2.grid(row=1,column=2)
label2=tk.Label(insert,text="输入歌手名称:")
label2.grid(row=2,column=1)
singer1=tk.StringVar()
singer2=tk.Entry(insert,textvariable=singer1)
singer2.grid(row=2,column=2)
label3=tk.Label(insert,text="输入发行年月:")
label3.grid(row=3,column=1)
time1=tk.StringVar()
time2=tk.Entry(insert,textvariable=time1)
time2.grid(row=3,column=2)
def insert1():
song=song2.get()
a=str(song)
singer=singer2.get()
b=str(singer)
time=time2.get()
c=str(time)
songs.append(SongInformation(a,b,c))
if len(a)!=0 and len(b)!=0 and len(c)!=0:
with open('song.txt', 'a',encoding='utf-8') as f:
for item in songs:
f.write(str(item.song)+" "+str(item.singer)
+" "+str(item.time)+'\n')
insuc()
else:
warn=tk.Tk()
warn.title("错误")
label1=tk.Label(warn,text="请重新输入!")
label1.pack()
warn.mainloop()
btn1=tk.Button(insert,text="录入",
command=insert1)
btn1.grid(row=4,column=1)
btn2=tk.Button(insert,text="结束",
command=insert.destroy)
btn2.grid(row=4,column=2)
insert.mainloop()
#录入成功的弹窗
def insuc():
insuc=tk.Tk()
insuc.title('录入成功')
label1=tk.Label(insuc,text="录入成功!")
label1.pack()
insuc.mainloop()
#删除歌曲界面
def dele():
dele=tk.Tk()
dele.title('删除歌曲界面')
label1=tk.Label(dele,text='输入要删除的歌曲名称:')
label1.grid(row=1,column=1)
dele1=tk.StringVar()
dele1=tk.Entry(dele,textvariable=dele1)
dele1.grid(row=1,column=2)
dele2=dele1.get()
dele3=str(dele2)
def dete(keyword):
keyword=dele3
for index,item in enumerate(songs):
if songs[index].song==keyword:
x=index
del songs[x]
file=open(filename,'w+',encoding='utf-8')
for item in songs:
file.write(str(item.song)+" "+str(item.singer)
+" "+str(item.time)+'\n')
file.close()
btn1=tk.Button(dele,text="确定删除",
command=dete())
btn1.grid(row=2,column=1)
btn2=tk.Button(dele,text="结束",
command=insert.destroy)
btn2.grid(row=4,column=2)
dele.mainloop()
这个是歌曲管理系统的一部分程序,删除歌曲这个要么是出错要么删不了,不知道该怎么继续做了(我知道自己写的很乱..
#引入需要的库
from tkinter import *
from unicodedata import name
import tkinter as tk
import os
import tkinter.messagebox as messagebox
#定义大类
class SongInformation:
def __init__(self, song,singer,time):
self.song=song
self.singer=singer
self.time=time
songs=[]
filename="song.txt"
file=open(filename,'r',encoding='utf-8')
if file:
line=file.readline()
while line!='':
list1=line.split()
if list1:
string1=list1[0]
if string1=='':
continue
if string1!='':
string2=list1[1]
string3=list1[2]
songs.append(SongInformation(string1,string2,string3))
line=file.readline()
file.close()
#制作主页并制作跳转功能
def menu():
top=tk.Tk()
top.title("歌曲信息管理系统")
top.geometry('280x280')
btn1=tk.Button(top,text="录入歌曲信息",
command=lambda:[top.quit,insert()])
btn2=tk.Button(top,text="删除歌曲信息",
command=lambda:[top.quit,dele()])
btn3=tk.Button(top,text="根据歌手分组",
command=lambda:[top.quit,singer()])
btn4=tk.Button(top,text="浏览歌曲信息",
command=lambda:[top.quit,browse()])
btn5=tk.Button(top,text="查询歌曲信息",
command=lambda:[top.quit,search()])
btn6=tk.Button(top,text="退出管理系统",
command=top.destroy)
btn1.pack()
btn2.pack()
btn3.pack()
btn4.pack()
btn5.pack()
btn6.pack()
top.mainloop()
#跳转界面
#录入界面设置
def insert():
insert=tk.Tk()
insert.title('录入歌曲界面')
label1=tk.Label(insert,text="输入歌曲名称:")
label1.grid(row=1,column=1)
song1=tk.StringVar()
song2=tk.Entry(insert,textvariable=song1)
song2.grid(row=1,column=2)
label2=tk.Label(insert,text="输入歌手名称:")
label2.grid(row=2,column=1)
singer1=tk.StringVar()
singer2=tk.Entry(insert,textvariable=singer1)
singer2.grid(row=2,column=2)
label3=tk.Label(insert,text="输入发行年月:")
label3.grid(row=3,column=1)
time1=tk.StringVar()
time2=tk.Entry(insert,textvariable=time1)
time2.grid(row=3,column=2)
def insert1():
song=song2.get()
a=str(song)
singer=singer2.get()
b=str(singer)
time=time2.get()
c=str(time)
songs.append(SongInformation(a,b,c))
if len(a)!=0 and len(b)!=0 and len(c)!=0:
with open('song.txt', 'a',encoding='utf-8') as f:
for item in songs:
f.write(str(item.song)+" "+str(item.singer)
+" "+str(item.time)+'\n')
insuc()
else:
warn=tk.Tk()
warn.title("错误")
label1=tk.Label(warn,text="请重新输入!")
label1.pack()
warn.mainloop()
btn1=tk.Button(insert,text="录入",
command=insert1)
btn1.grid(row=4,column=1)
btn2=tk.Button(insert,text="结束",
command=insert.destroy)
btn2.grid(row=4,column=2)
insert.mainloop()
#录入成功的弹窗
def insuc():
insuc=tk.Tk()
insuc.title('录入成功')
label1=tk.Label(insuc,text="录入成功!")
label1.pack()
insuc.mainloop()
#删除歌曲界面
def dele():
dele=tk.Tk()
dele.title('删除歌曲界面')
label1=tk.Label(dele,text='输入要删除的歌曲名称:')
label1.grid(row=1,column=1)
dele1=tk.StringVar()
dele1=tk.Entry(dele,textvariable=dele1)
dele1.grid(row=1,column=2)
# dele2=dele1.get() 应该是点击删除的时候才获取文本
# dele3=str(dele2) get() 得到的本来就是字符串
def dete(): # 不要关键字参数
# keyword=dele3 改成 keyword=dele1.get()
keyword=dele1.get()
result = [] # 加个 result = []
for index,item in enumerate(songs):
if songs[index].song!=keyword: # == 改成 !=
# x=index 不要
result.append(songs[index]) # 使用 result 列表存放删除后的结果
# del songs[x] 这一行不要
file=open(filename,'w+',encoding='utf-8')
for item in result: # songs 改成 result
file.write(str(item.song)+" "+str(item.singer)
+" "+str(item.time)+'\n')
file.close()
btn1=tk.Button(dele,text="确定删除",
command=dete) # 这里不要 (),() 是调用的得到函数返回值,command 传入函数名即可
btn1.grid(row=2,column=1)
btn2=tk.Button(dele,text="结束",
command=dele.destroy) # 这里应该是关闭删除界面,改成 dele.destroy
btn2.grid(row=4,column=2)
dele.mainloop()
menu()
|
|