発生している問題・エラーメッセージ
python初心者です。全くわからず質問させていただきました。
pythonを使用していてtkinterでGUIを作っています
gridとpackを共存させたいと考えframe?を作ってみましたが、もともとdefで定義していた計算ができなくなりました。
それとentryに文字を出した状態のままにしようと思っても、それもできませんでした。
2点ご教授いただけたら幸いです。
よろしくお願いします
該当のソースコード
import tkinter as tk
root = tk.Tk()
root.title("栄養")
frame1 = tk.Frame(root)
def vital():
val_1 = float(textBox1.get())
if val_1 > 1:
answer1 = eval("150")
answer_ent1.delete(0, tk.END)
answer_ent1.insert(0, answer1)
answer2 = eval("200")
answer_ent2.delete(0, tk.END)
answer_ent2.insert(0, answer1)
else :
answer1 = eval("200")
answer_ent1.delete(0, tk.END)
answer_ent1.insert(0, answer1)
def calc_bmi():
val_1 = int(textBox2.get()) / 100
val_2 = int(textBox3.get())
# ↓文字列状態の式を実行
answer = eval("val_2 / val_1** 2")
answer_ent.delete(0, tk.END)
answer_ent.insert(0, answer)
label1 = tk.Label(frame1, text='年齢').grid(row = 0, column = 0)
label2 = tk.Label(frame1, text='身長').grid(row = 0, column = 2, sticky = "wens")
label3 = tk.Label(frame1, text = "体重(kg)").grid (row = 0, column = 4, sticky = "wens")
label4 = tk.Label(frame1, text = "BMI").grid(row = 0, column = 6, sticky = "wens")
label5 = tk.Label(frame1, text = "栄養").grid(row = 1, column = 6, sticky = "wens")
textBox1= tk.Entry(frame1).grid(row = 0, column = 1, sticky = "wens", padx = 10, pady = 10)
textBox2= tk.Entry(frame1).grid(row = 0, column = 3, sticky = "wens", padx = 10, pady = 10)
textBox3= tk.Entry(frame1).grid(row = 0, column = 5, sticky = "wens", padx = 10, pady = 10)
answer_ent= tk.Entry(frame1).grid(row = 0, column = 7, sticky = "wens", padx = 10, pady = 10)
answer_ent1= tk.Entry(frame1).grid(row = 1, column = 7, sticky = "wens", padx = 10, pady = 10)
answer_ent2= tk.Entry(frame1).grid(row = 2, column = 7, sticky = "wens", padx = 10, pady = 10)
calcButton = tk.Button(frame1, text=u'計算',command=lambda:[vital(), calc_bmi()]).grid(row = 1, column = 0, padx = 10, pady = 10)
frame1.pack()
frame2 = tk.Frame(root)
textBox4= tk.Entry(frame2,text=u',width = 40).pack()
textBox5= tk.Entry(frame2,width = 40).pack()
textBox6= tk.Entry(frame2,width = 40).pack()
textBox7= tk.Entry(frame2,width = 40).pack()
textBox8= tk.Entry(frame2,width = 40).pack()
frame2.pack(side='left')
root.rowconfigure(0, weight=1) #1行目の引き伸ばし設定
root.rowconfigure(1, weight=1) #2行目の引き伸ばし設定
root.columnconfigure(0, weight=1) #1列目の引き伸ばし設定
root.columnconfigure(1, weight=1) #2列目の引き伸ばし設定
root.mainloop() #イベントループ
python3
1ソースコード
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー