今日は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() |
まとめ
ファクト・マシンの作成に成功しました。
お読みいただきありがとうございました。