こんな方におすすめ
- GUIを作って、pythonプログラムを動かしたい
- tkinterを使ってみたい
PythonのプログラムをGUIを作って動作させる方法についての記事になります。今回はtkinterというモジュールを使用して作成してみました。ランダムにかけ算が出題され、それを回答するようなGUIです。子どもが、プログラムを理解し、かけ算をしながらちょっと遊ぶのにいいと思います。
プログラムの内容
以下のようなGUIを作成します。
① かけ算がランダムに出題されます。
② ここに回答します。
③ "RESET"ボタンで、問題が切り替わります。
④ "CHECK"ボタンで、回答のチェックをします。正解の場合は、②の欄に"正解"または"不正解"が表示されます。
⑤ "EXIT"で終了します。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座
プログラムソース
ランダムかけ算問題GUIのプログラムソースです。tkinterを用いて作成しています。
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 |
import tkinter as tk import random from time import sleep class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master.geometry() self.master.title('ランダムかけ算問題!') self.entry = tk.Entry(self.master) self.entry2= tk.Entry(self.master) self.menu_bar = tk.Menu(self.master) self.master.config(menu=self.menu_bar) self.create_widgets() #かけ算問題の答え合せ関数(CHECKボタンで呼ばれる) def check(self): #txt=self.entry.get() txt2 = self.entry2.get() self.value = eval(self.entry.get().replace('x', '*')) self.entry2.delete(0, tk.END) #self.entry2.insert(0, txt[:-1]) if(self.value==int(txt2)): self.entry2.insert(tk.END,"正解。いいぞ!その調子") else: self.entry2.insert(tk.END,"残念。正解は"+str(self.value)) #かけ算問題の作成関数(RESETボタンで呼ばれる) def maketest(self): A=random.randint(1,9) B=random.randint(1,9) self.entry.delete(0,tk.END) self.entry2.delete(0,tk.END) self.entry.insert(tk.END, str(A) + "x" + str(B)) #ウィジェットの作成 def create_widgets(self): file_menu = tk.Menu(self.menu_bar) file_menu.add_command(label='Exit', command=self.master.quit) self.menu_bar.add_cascade(label='File', menu=file_menu) self.maketest() self.entry.grid(row=0, column=0, columnspan=6, pady=3) self.entry.focus_set() self.entry2.grid(row=1, column=0, columnspan=6, pady=3) self.entry2.focus_set() tk.Button(self.master, text='RESET', width=5, command=self.maketest).grid(row=2, column=4) tk.Button(self.master, text='CHECK', width=5, command=lambda: self.check()).grid(row=2, column=5) tk.Button(self.master, text='EXIT', width=6, command=self.master.quit).grid(row=3, column=5, columnspan=2) #TKオブジェクトのメインウインドウの作成 root = tk.Tk() app = Application(master=root) app.mainloop() |
まとめ
tkinterを用いて、Pythonで簡単にGUIを作成することができました。掲載しているプログラムソースの内容を少し変更すれば、計算機を作成することが可能です。ぜひトライしてみてください。