今日はPythonのTkinterを使ってRandom Facts MachineというGUIアプリケーションを作ります。
それでは始めましょう。
どのような事実を指しているのでしょうか?
世界中のランダムな事柄に関する事実です。
その文章が真実であり、実際に起こった出来事に基づいている限り、文字通り何でもありです。
事実は、「どこで」「いつ」「なぜ」「どのように」という質問に答えるものです。
事実は常に証拠によって裏付けられており、だからこそ事実は常に真実なのです。
事実を読むことは、語彙を増やし、読解力を高め、知識を深めることにもつながります。
また、ストレスや不安を解消するのにも役立ちます。
おすすめの読み方 Tkinterを使って摂氏から華氏への変換器を作るには?
ランダムファクトマシンの構築
それでは早速、PythonのTkinterモジュールを使って、ランダムファクトマシンを構築する手順を説明します。
1.
Adding Functions to the Buttons
ボタン1: 終了ボタン
終了ボタンの機能を追加するために必要なことは、ウィンドウを破棄する exit 関数を作成することです。
そして、ボタンに command 属性を追加して、それを exit 関数に設定します。
そのためのコードを以下に示します。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import tkinter as tk
window = tk.Tk()
window.geometry("700x250")
window.config(bg="#E67E22")
window.resizable(width=False,height=False)
window.title('FACT MACHINE')
l1 = tk.Label(window,text="Welcome to the Fact Machine!",font=("Arial", 25),fg="Black",bg="White")
l2= tk.Label(window,text="Click on the 'Get new Fact!' button to get a fact!",font=("Arial", 15,"bold"),fg="darkgreen",bg="#E67E22")
btn1 = tk.Button(window,text="Get new Fact!",font=("Arial", 15))
btn2 = tk.Button(window,text="Exit application",font=("Arial", 15))
t1 = tk.Text(window,width=60,height=2,font=("Arial",15),state='disabled',bg="lightgreen")
l1.pack()l2.pack()btn1.pack()t1.pack()btn2.pack() |
ボタン2:ファクトを取得するボタン
さて、クリックするたびにランダムな事実を取得するために、Pythonのrandfactsモジュールを使用します。
このモジュールが存在しない場合は、システムのコマンドプロンプトでpip install randfactsを実行してください。
新しいファクトを取得するために、getFact関数を使用し、パラメータにFalseを追加して、ランダムな楽しいファクトを取得します。
ファクトを取得したら、テキストボックスをクリアして、ファクトをテキストボックスに追加します。
関数を宣言した後、command属性をget factボタンに追加して、get_fact関数として設定します。
以下はそのコードです。
|
1
2
|
def exit():
window.destroy()
|
Random Facts Machine の完全なコード (Tkinter)
アプリケーション全体の最終的なコードは以下のとおりです。
|
1
2
3
4
5
6
7
|
import randfacts
def get_fact():
t1.config(state='normal')
t1.delete('1.0', tk.END)
f = randfacts.getFact(False)
t1.insert(tk.END,f)
t1.config(state='disabled')
|
出力
以下の画像でご覧いただけるように、アプリケーションは完全に動作します。
|
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
|
import randfacts
def get_fact():
t1.config(state='normal')
t1.delete('1.0', tk.END)
f = randfacts.getFact(False)
t1.insert(tk.END,f)
t1.config(state='disabled')
def exit():
window.destroy()
import tkinter as tk
window = tk.Tk()
window.geometry("700x250")
window.config(bg="#E67E22")
window.resizable(width=False,height=False)
window.title('FACT MACHINE')
l1 = tk.Label(window,text="Welcome to the Fact Machine!",font=("Arial", 25),fg="Black",bg="White")
l2= tk.Label(window,text="Click on the 'Get new Fact!' button to get a fact!",font=("Arial", 15,"bold"),fg="darkgreen",bg="#E67E22")
btn1 = tk.Button(window,text="Get new Fact!",font=("Arial", 15),command=get_fact)
btn2 = tk.Button(window,text="Exit application",font=("Arial", 15),command=exit)
t1 = tk.Text(window,width=60,height=2,font=("Arial",15),state='disabled',bg="lightgreen")
l1.pack()l2.pack()btn1.pack()t1.pack()btn2.pack()window.mainloop() |

まとめ
ファクト・マシンの作成に成功しました。
お読みいただきありがとうございました。