吳丞傑Python tkinter GUI金融常識測驗App

import tkinter #輸入tkinter繪圖模組 #財金程式設計602 #劉任昌import進口export出口 class Financial: #類別用於建構504道金融常識題目 def __init__(self, number, q, a, b, c, d, ans): self.number, self.q, self.ans = number, q, ans self.a, self.b, self.c, self.d = a, b, c, d def check(choice): choice = reply.get() #以字串存'1'...'4' temp = number.get() - 1 #題號 if choice == '1': LBa.config(bg="#b8c1a4") if choice == List[temp].ans: LBa.config(bg='blue',fg='white') if choice == '2': LBb.config(bg="#b7c1a4") if choice == List[temp].ans: LBb.config(bg='blue',fg='white') if choice == '3': LBc.config(bg="#b0b3bf") if choice == List[temp].ans: LBc.config(bg='blue',fg='white') if choice == '4': LBd.config(bg="#3658c5") if choice == List[temp].ans: LBd.config(bg='blue',fg='white') def update(): qtk.set(List[number.get()-1].q) atk.set(List[number.get()-1].a) btk.set(List[number.get()-1].b) ctk.set(List[number.get()-1].c) dtk.set(List[number.get()-1].d) reply.set('答') def refresh(): LBa.config(bg='white',fg='black') LBb.config(bg='white',fg='black') LBc.config(bg='white',fg='black') LBd.config(bg='white',fg='black') def prev(): if number.get() == 1: number.set(504)#如果1前一個504 else: number.set(number.get() - 1) update() refresh() def next(): if number.get() == 504: number.set(1)#set如果504設定1 else: number.set(number.get() + 1) update() refresh() def explain(): pass f = open('金融常識.txt','r',encoding='utf-8') read = f.readlines() #read = f.read() f.close() List = [] Answer=(4,4,3,4,3,2,3,3,4,2,4,4,4,3,4,2,3,1,1,2,1,2,3,3,1,3,4,4,3,4,1,4,3,2,4,2,2,3,2,4,1,4,1,1,4,3,1,2,4,1,2,1,4,4,4,1,4,2,1,3,3,1,4,4,3,2,2,2,4,4,1,3,3,1,2,4,1,3,4,4,2,4,4,3,4,1,3,2,3,2,3,2,2,2,4,4,4,1,1,2,2,4,4,1,4,1,4,4,4,2,1,1,2,1,2,1,2,2,3,3,3,4,2,1,1,1,1,2,2,1,4,4,4,4,4,4,4,3,4,4,1,1,2,2,3,4,4,3,1,4,2,3,3,2,1,3,4,4,2,4,1,1,3,3,2,2,3,1,2,1,4,3,3,2,2,2,1,4,2,4,3,3,3,1,3,3,2,3,3,1,4,4,3,2,4,2,2,4,1,1,1,3,1,3,2,2,3,4,4,3,2,2,1,2,4,1,1,2,2,1,1,1,3,1,2,2,2,1,1,4,1,3,1,1,1,1,1,3,1,2,3,3,3,2,4,3,3,3,1,2,4,2,3,3,1,4,2,3,3,3,4,1,2,3,2,3,4,2,3,4,4,1,2,4,3,4,4,2,2,3,1,4,3,4,2,1,2,3,2,4,2,1,3,4,1,2,1,1,4,1,2,4,1,4,3,4,4,2,2,1,1,2,3,4,3,3,1,3,1,4,4,3,2,4,4,2,1,1,4,1,1,2,3,2,3,3,4,2,2,4,3,3,3,2,1,1,2,2,4,1,4,1,3,1,1,4,1,4,4,3,1,4,3,3,2,1,1,4,2,4,2,4,1,1,4,1,3,1,2,4,1,1,4,1,3,1,3,4,1,4,2,3,1,3,2,3,3,3,4,2,3,4,3,1,4,1,3,3,4,4,4,4,1,2,3,1,3,3,3,1,3,4,1,3,1,4,1,3,2,4,4,3,1,1,4,2,1,3,1,2,2,1,1,4,3,2,3,4,1,4,1,1,4,2,1,2,1,2,4,3,1,3,3,2,4,3,1,2,1,3,3,3,1,4,3,1,3,2,3,1,3,1,4,1,1,4,4,2,3,1,4,4,3,4,1,3,4,2,3,4,4,2,3,1) nList, nAnswer = len(read), len(Answer) if nList != nAnswer: print('題目長度 ', nList, ' 與答案長度 ', nAnswer,' 不同!') for i in range( nList ): a1 = read[i].find('(1)') b2 = read[i].find('(2)') c3 = read[i].find('(3)') d4 = read[i].find('(4)') q = read[i][:a1] a = '(1) ' + read[i][a1 + 3 : b2] b = '(2) ' + read[i][b2 + 3 : c3] c = '(3) ' + read[i][c3 + 3 : d4] d = '(4) ' + read[i][d4 + 3 : -1] List.append( Financial( i+1, q, a, b, c, d, str(Answer[i])) ) tk = tkinter.Tk() tk.title("吳丞傑Python tkinter GUI金融常識測驗app") tk.geometry('1200x400') number = tkinter.IntVar(tk) reply, qtk = tkinter.StringVar(tk), tkinter.StringVar(tk) atk, btk = tkinter.StringVar(tk), tkinter.StringVar(tk) ctk, dtk = tkinter.StringVar(tk), tkinter.StringVar(tk) select = ('1', '2', '3', '4') reply.set('答') number.set(1) update() option = tkinter.OptionMenu(tk, reply, *select, command=check).grid(column=1, row=0) LBq = tkinter.Label(tk, textvariable=qtk, wrap=1000, font=('微軟中黑體',20),justify="left")#題目 LBq.grid(column=2, row=0, sticky=tkinter.W) LBa = tkinter.Label(tk, textvariable=atk, bg='white', fg='black') LBa.grid(column=2, row=1, sticky=tkinter.W) #選項(1) LBb = tkinter.Label(tk, textvariable=btk, bg='white', fg='black') LBb.grid(column=2, row=2, sticky=tkinter.W) #選項(2) LBc = tkinter.Label(tk, textvariable=ctk, bg='white', fg='black') LBc.grid(column=2, row=3, sticky=tkinter.W) #選項(3) LBd = tkinter.Label(tk, textvariable=dtk, bg='white', fg='black') LBd.grid(column=2, row=4, sticky=tkinter.W) #選項(4) LBnumber = tkinter.Entry(tk, textvariable=number, width = 3) LBnumber.grid(column=0, row=0) btnprev = tkinter.Button(tk, text='前一題', width=6, command=prev).grid(column=0, row=1) btnnext = tkinter.Button(tk, text='下一題', width=6, command=next, font=('微軟中黑體',10), bg='green').grid(column=0, row=2) btnEXPL = tkinter.Button(tk, text='說明', width=6, command=explain).grid(column=0, row=3) tk.mainloop()

留言

  1. 期末考沒有<和>但有Left...https://jay960413.blogspot.com/2026/01/from-tkinter-import-import-random.html
    curly brackets標記b和strong沒有https://jay960413.blogspot.com/2025/12/python.html
    sin cos.https://jay960413.blogspot.com/2025/12/buttonbordergreen-5px-solidborder.html
    https://jay960413.blogspot.com/2025/12/python-tkinter_14.html
    https://jay960413.blogspot.com/2025/12/python-tkinter.html
    沒有border.https://jay960413.blogspot.com/2025/11/python-tkinter.html
    https://jay960413.blogspot.com/2025/11/import-tkinter-tkinter-602-class.html
    https://jay960413.blogspot.com/2025/11/import-tkinter-class-financial-def.html
    沒有pre. https://jay960413.blogspot.com/2025/11/python-tkinter-guiapp.html

    回覆刪除

張貼留言

這個網誌中的熱門文章

吳丞傑Python百科

吳丞傑python產生金融常識測驗

吳丞傑輸入tkinter繪圖模組金融常試測驗app