from tkinter import * from api.ncnu import NcnuAPI from config import CONFIG from tkinter import messagebox from tkhtmlview import HTMLLabel def createNcnuWin(ncnu): if ncnu.status: def dlCurriculum(sem): if ncnu.getCourseTable(sem): messagebox.showinfo(message="{} 課表已經儲存到 ./{}課表.pdf".format(sem,sem)) else: messagebox.showwarning(message="無法存取 {} 課表".format(sem)) win=Tk() leftframe=Frame(win) leftframe.pack(fill=BOTH,side=LEFT) rightframe=Frame(win) rightframe.pack(side=RIGHT) textlb=Label(leftframe,text="我的學習紀錄",font="Helvetica 20") options=["各學期成績總覽","指定學期的成績列表","缺曠課記錄","獎懲紀錄","加選課程狀態"] optionsListbox=Listbox(leftframe) optionsListbox.insert(END,*options) chooseSemesterLb=Label(leftframe,text="指定學期",font="Helvetica 10") chooseSemesterEntry=Entry(leftframe) chooseSemesterEntry.insert(0,"1092") downloadBtn=Button(leftframe,text="下載課表",command=lambda:dlCurriculum(chooseSemesterEntry.get())) textlb.pack(fill=BOTH,expand=True) optionsListbox.pack(fill=BOTH) chooseSemesterLb.pack(fill=BOTH) chooseSemesterEntry.pack(fill=BOTH) downloadBtn.pack() htmlLb=HTMLLabel(rightframe,html="") htmlScrollbar=Scrollbar(rightframe) htmlLb.configure(yscrollcommand=htmlScrollbar.set) htmlScrollbar.pack(fill=Y,side=RIGHT) htmlLb.pack() def itemSelected(event): obj = event.widget Index = obj.curselection() ht='''
'''.format(c.get("semester"), c.get("select_num"),c.get("pass_Num"),c.get("pass_credit"),c.get("average"),c.get("rank") ) c=scores['sum'] Html+='''
".format(i.get("number"), i.get("class"),i.get("name"),i.get("credit"),i.get("teacher"),i.get("time"),i.get("place"),i.get("credit"),i.get("score"),i.get("mandatary") ) htmlLb.set_html(Html) elif str( obj.get(Index) ) == options[2]: absenceLogs = ncnu.getAbsenceLogs() if absenceLogs: for log in absenceLogs: Html+='''
'''.format(log.get('id'),
log.get('semester'),log.get('classname'),log.get('class'),log.get('check'))
htmlLb.set_html(Html)
optionsListbox.bind("<