受講生(N氏)からのお題をやってみよう。今回はtkinterを使ったGUIを伴ったアプリ制作だ。
完成イメージ
お酒の量などを入力するとアルコール度数を計算してくれるアプリだ。
仕様
・画像のようなお酒を水割りをした時のアルコール度数を計算するアプリを作成せよ。
・度数をする計算式:
(割るお酒のアルコール度数*お酒の量)/(お酒の量+割るお水の量)*100
・例:お酒の量60ml 割るお酒のアルコール度数25度 割るお水の量110ml
(0.25*60)/(60+110)*100
・起動時とクリアボタンを押した際は以下の画像のようになる
作成
レイアウトの作成
ではさっそく作っていこう。レイアウトの方法はpack,grid,placeなどがあるが今回はpackとplaceを使ってみよう。以下のようにsake.pyを作成しレイアウトを確認する。
注)Macなどの一部の環境ではボタンの背景色がうまく表示できない場合ある。
以下の例ではhighlightbackground=’#ef8f35′,として疑似的に表現している。
winなど問題のない環境ではbgを使ったほうがよい。
同じスタイルが多かったのでdictを作ってそれを**を使って引数で渡している
import tkinter as tk
def bt_calc():
pass
def bt_clear():
pass
mc='#f0edc7'
sc='#51ada8'
s1={'padx':5,'pady':5,'anchor':tk.W}
s2={'padx':10,'pady':5,'anchor':tk.W}
root=tk.Tk();
root.geometry('300x500')
root.title('水割りアルコール度数計算')
root['bg']= mc
tk.Label(fg='white',bg=sc,text='水割りアルコール度数計算').pack(fill=tk.X)
tk.Label(bg=mc,text='お酒の量(ml)').pack(**s1)
e1=tk.Entry(width=10)
e1.pack(**s2)
tk.Label(bg=mc,text='アルコール度数').pack(**s1)
e2=tk.Entry(width=10)
e2.pack(**s2)
tk.Label(bg=mc,text='割る水の量(ml)').pack(**s1)
e3=tk.Entry(width=10)
e3.pack(**s2)
calc_bt=tk.Button(
text='計算する',
width=12,
height=2,
highlightbackground='#ef8f35',
#bg='#ef8f35',
command=bt_calc
)
calc_bt.pack(padx=10,pady=15,anchor=tk.W)
clear_bt=tk.Button(
text='クリア',
width=12,
height=2,
highlightbackground=sc,
#bg=sc,
command=bt_clear
)
clear_bt.pack(padx=10,pady=10,anchor=tk.W)
l1=tk.Label(bg=mc)
l1.place(x=10,y=400)
l2=tk.Label(bg=mc,font=('Arial',24),fg='red')
l2.place(x=125,y=392)
l3=tk.Label(bg=mc)
l3.place(x=180,y=400)
root.mainloop()
Let’s challenge!
下準備はできた。ここから先はあなた自身で作成してみてもらいたい。
ロジックはそれほど難しいところはないだろう。
コメント