跟MianWin的button 綁在一起

This commit is contained in:
molaboon 2021-07-03 14:53:10 +08:00
parent 0e80fd18c4
commit 5ba7922c7c

View File

@ -2,136 +2,136 @@ import requests
import json import json
from tkinter import * from tkinter import *
from api.courseTable.courseTable import * from api.courseTable.courseTable import *
def callTable():
url = 'https://raw.githubusercontent.com/snsd0805/NCNU_Course/master/%E6%AD%B7%E5%B9%B4%E8%AA%B2%E7%A8%8B%E8%B3%87%E6%96%99/1092_output.json'
response = requests.get(url)
url = 'https://raw.githubusercontent.com/snsd0805/NCNU_Course/master/%E6%AD%B7%E5%B9%B4%E8%AA%B2%E7%A8%8B%E8%B3%87%E6%96%99/1092_output.json' data = json.loads(response.text)
response = requests.get(url)
data = json.loads(response.text) class Choose():
def __init__(self,root,name,typeS):
self.frame=Frame(root)
self.classname = Label(self.frame, font="10", width="10", text=name)
self.listbox = Listbox(self.frame)
self.scrollbar=Scrollbar(self.frame)
self.checkBtn = Button(self.frame, text="選取")
self.checkBtn.config(
command=lambda: self.setDepartment() if self.type=="department" else self.setCourse()
)
self.type = typeS
class Choose(): def setDepartment(self):
def __init__(self,root,name,typeS): # print("set department")
self.frame=Frame(root) # print(self.listbox.get(ACTIVE))
self.classname = Label(self.frame, font="10", width="10", text=name) self.update()
self.listbox = Listbox(self.frame)
self.scrollbar=Scrollbar(self.frame)
self.checkBtn = Button(self.frame, text="選取")
self.checkBtn.config(
command=lambda: self.setDepartment() if self.type=="department" else self.setCourse()
)
self.type = typeS
def setDepartment(self): def setCourse(self):
# print("set department") # print("set course")
# print(self.listbox.get(ACTIVE)) # print(self.listbox.get(ACTIVE).split(' ')[0])
self.update() courseTable.add(
self.listbox.get(ACTIVE).split(' ')[0]
)
self.update()
def setCourse(self): def update(self):
# print("set course") courses = courseTable.courseFilter(box[0].listbox.get(ACTIVE))
# print(self.listbox.get(ACTIVE).split(' ')[0]) courses = ["{} {}({})".format(course['number'], course['name'], course['time']) for course in courses]
courseTable.add( box[1].listbox.delete(0, END)
self.listbox.get(ACTIVE).split(' ')[0] box[1].insert(courses)
)
self.update()
def update(self): # update table draw
courses = courseTable.courseFilter(box[0].listbox.get(ACTIVE)) for j in range(5):
courses = ["{} {}({})".format(course['number'], course['name'], course['time']) for course in courses] for i in range(13):
box[1].listbox.delete(0, END) if courseTable.table[str(j+1) + tmp[i]] != None:
box[1].insert(courses) table[18 + (13*j+i)].classname.config(text=
courseTable.table[str(j+1) + tmp[i]]['name']
)
table[18 + (13*j+i)].removeBtn.grid()
table[18 + (13*j+i)].id = courseTable.table[str(j+1) + tmp[i]]['number']
else:
table[18 + (13*j+i)].classname.config(text="")
table[18 + (13*j+i)].removeBtn.grid_forget()
table[18 + (13*j+i)].id = None
# update table draw def insert(self,LIST):
for j in range(5): self.listbox.insert(END,*LIST)
for i in range(13):
if courseTable.table[str(j+1) + tmp[i]] != None:
table[18 + (13*j+i)].classname.config(text=
courseTable.table[str(j+1) + tmp[i]]['name']
)
table[18 + (13*j+i)].removeBtn.grid()
table[18 + (13*j+i)].id = courseTable.table[str(j+1) + tmp[i]]['number']
else:
table[18 + (13*j+i)].classname.config(text="")
table[18 + (13*j+i)].removeBtn.grid_forget()
table[18 + (13*j+i)].id = None
def insert(self,LIST): def grid(self,Row,Column,span):
self.listbox.insert(END,*LIST) self.listbox.selection_set(15)
self.frame.grid(row=Row,column=Column,rowspan=span,padx=10,sticky="n"+"s")
self.classname.pack()
self.scrollbar.pack(fill=Y,side=RIGHT)
self.listbox.pack()
self.listbox.config(yscrollcommand=self.scrollbar.set)
self.checkBtn.pack()
def grid(self,Row,Column,span): class Space():
self.listbox.selection_set(15) def __init__(self, root, name=None):
self.frame.grid(row=Row,column=Column,rowspan=span,padx=10,sticky="n"+"s") self.frame = Frame(root,relief=RIDGE,bd=1)
self.classname.pack() self.classname = Label(self.frame, font=("Curier New",10),padx=10, text=name,justify="right")
self.scrollbar.pack(fill=Y,side=RIGHT) self.removeBtn = Button(self.frame, font=("Curier New",10), text="", command=self.removeCourse)
self.listbox.pack() #self.frame.config(relief=RIDGE)
self.listbox.config(yscrollcommand=self.scrollbar.set) self.id = None
self.checkBtn.pack()
class Space(): def grid(self,Row,Column):
def __init__(self, root, name=None): if Row==5:
self.frame = Frame(root,relief=RIDGE,bd=1) self.frame.config(bg="green")
self.classname = Label(self.frame, font=("Curier New",10),padx=10, text=name,justify="right") self.classname.config(bg="green")
self.removeBtn = Button(self.frame, font=("Curier New",10), text="", command=self.removeCourse) self.frame.grid(row=Row,column=Column,padx=20,sticky="w"+"e")
#self.frame.config(relief=RIDGE) self.classname.grid(row=0,column=0)
self.id = None self.removeBtn.grid(row=0,column=1)
self.removeBtn.grid_forget()
def grid(self,Row,Column): def removeCourse(self):
if Row==5: # print(self.id)
self.frame.config(bg="green") courseTable.remove(self.id)
self.classname.config(bg="green") box[0].update()
self.frame.grid(row=Row,column=Column,padx=20,sticky="w"+"e") # courseTable.showTableStatus()
self.classname.grid(row=0,column=0)
self.removeBtn.grid(row=0,column=1)
self.removeBtn.grid_forget()
def removeCourse(self): root = Tk()
# print(self.id) root.geometry('800x600')
courseTable.remove(self.id)
box[0].update()
# courseTable.showTableStatus()
root = Tk() courseTable = CourseTable()
root.geometry('800x600')
courseTable = CourseTable() box=[]
box.append(Choose(root,name="科系",typeS='department'))
departments = courseTable.getDepartmentList()
box[0].insert(departments)
box[0].listbox.select_set(0)
box[0].grid(0,0,7)
box=[] box.append(Choose(root,name="課程",typeS='courses'))
box.append(Choose(root,name="科系",typeS='department')) courses = courseTable.courseFilter("21, 資工系")
departments = courseTable.getDepartmentList()
box[0].insert(departments)
box[0].listbox.select_set(0)
box[0].grid(0,0,7)
box.append(Choose(root,name="課程",typeS='courses')) box[1].insert(["{} {}({})".format(course['number'], course['name'], course['time']) for course in courses])
courses = courseTable.courseFilter("21, 資工系") box[1].grid(7,0,6)
box[1].insert(["{} {}({})".format(course['number'], course['name'], course['time']) for course in courses])
box[1].grid(7,0,6)
table = [] table = []
k=0 k=0
tmp=list("abcdzefghijklm") tmp=list("abcdzefghijklm")
for j in range(5): for j in range(5):
table.append(Label(root,text=j+1,font=("Curier New",20))) table.append(Label(root,text=j+1,font=("Curier New",20)))
table[k].grid(row=0,column=j+3) table[k].grid(row=0,column=j+3)
k+=1
for i in range(13):
table.append(Label(root,text=tmp[i]))
table[k].grid(row=i+1,column=1)
k+=1
table[9].config(bg="green")
# 18~
for j in range(5):
for i in range(13):
table.append(Space(root))
table[k].grid(i+1,j+3)
k+=1 k+=1
for i in range(13):
table.append(Label(root,text=tmp[i]))
table[k].grid(row=i+1,column=1)
k+=1
table[9].config(bg="green")
# 18~
for j in range(5):
for i in range(13):
table.append(Space(root))
table[k].grid(i+1,j+3)
k+=1
root.mainloop()
root.mainloop()