PythonのTkinterを使ってランダムファクトマシンを実装してみた

スポンサーリンク

今日は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()
Initial Screen Fact Machine
Initial Screen Fact Machine

まとめ

ファクト・マシンの作成に成功しました。

お読みいただきありがとうございました。

タイトルとURLをコピーしました