Python 入門指南 5.0
exercise3402.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | # 從標準程式庫引入 Tk from tkinter import * # 從 tkinter 引入 font from tkinter import font # 從 tkinter 引入 ttk from tkinter import ttk # 從 exercise2908 引入 get_result from exercise2908 import get_result # 練習用的視窗類別 class DiceGUI(ttk.Frame): def __init__(self, master): ttk.Frame.__init__(self, master) self.winfo_toplevel().title("擲骰子遊戲") self.root = master self.grid() self.label_font = font.Font(master, font="SF 48") self.createWidgets() self.style = ttk.Style() self.style.theme_use("alt") def createWidgets(self): self.label = Label(self) self.label["text"] = "" self.label["width"] = 20 self.label["height"] = 10 self.label["bg"] = "white" self.label["fg"] = "black" self.label["font"] = self.label_font self.label.grid(row=0, column=0, sticky=N) self.button = Button(self) self.button["text"] = "按我" self.button["width"] = 20 self.button["command"] = self.do_something self.button.grid(row=1, column=0, sticky=N) def update_text(self): if self.current_line < len(self.text_lines): self.show_text += str(self.text_lines[self.current_line]) self.label.config(text=self.show_text) self.current_line += 1 self.root.after(900, self.update_text) def do_something(self): self.text_lines = get_result() self.current_line = 0 self.show_text = "" self.update_text() # 執行部分 if __name__ == '__main__': # 建立 Tk 應用物件 root = Tk() # 建立視窗物件 app = DiceGUI(master=root) # 呼叫維持視窗運作的 mainloop() root.mainloop() # 檔名: exercise3402.py # 說明:《Python入門指南》的練習 # 網站: http://kaiching.org # 作者: 張凱慶 # 時間: 2023 年 11 月 |