Pythonで作るGUIアプリでBMIを計算の下にTODOリストを入れたいです。
解決したいこと
Pythonで作るGUIアプリで
BMIの機能とtodoリストの機能を1つにくっつけたいです。
例)
PythonでWebアプリをつくっています。
BMIを計算できるコードとTODOを書き出せるコードがあります。
BMIを計算の下にTODOリストを入れたいです。
が、うまくいきません。
解決方法を教えて下さい。
発生している問題・エラー
エラーも出ません。
TODOリストを作るコード
import tkinter as tk
class Application(tk.Frame):
def __init__(self,master=None):
tk.Frame.__init__(self,master)
self.master.title('Todo List')
self.master.geometry('500x450')
self.ToDoNumber = 0
self.ToDo = []
self.txt = []
self.spent = []
self.spentNumber = []
self.creat_widgets()
self.pack()
def creat_widgets(self):
self.EditBox = tk.Entry(self,width = 30)
self.EditBox.grid(row=0,column=0)
Button = tk.Button(self,text ='追加')
Button.bind('<Button-1>',self.DeleteEntryValue)
Button.grid(row=0,column=1)
def DeleteEntryValue(self,event):
txtNew = tk.StringVar()
txtNew.set(self.EditBox.get())
ToDoNew = tk.Label(self,width=30,textvariable=txtNew)
self.txt.append(txtNew)
self.ToDo.append(ToDoNew)
self.ToDoNumber += 1
ToDoNew.grid(row=self.ToDoNumber,column=0)
spentNumberNew = tk.StringVar()
spentNumberNew.set('0')
spentNew = tk.Label(self,width=2,textvariable=spentNumberNew)
self.spent.append(spentNew)
self.spentNumber.append(spentNumberNew)
spentNew.grid(row=self.ToDoNumber,column=1)
self.EditBox.delete(0,tk.END)
root = tk.Tk()
app = Application(master=root)
app.mainloop()
BMIを計算するアプリ
import tkinter
def btn_click():
height = float(height_box.get())
weight=float(weight_box.get())
BMI=weight/(height*height)
bmi_box.delete(0, tkinter.END)
bmi_box.insert(0, BMI)
tki = tkinter.Tk()
tki.geometry('400x300')
tki.title('BMI計算')
height_lavel = tkinter.Label(text='身長[m]')
height_lavel.place(x=60, y=50)
weight_lavel = tkinter.Label(text='体重')
weight_lavel.place(x=60, y=80)
area_lavel = tkinter.Label(text='BMI')
area_lavel.place(x=60, y=230)
height_box = tkinter.Entry(width=20)
height_box.place(x=140, y=50)
weight_box = tkinter.Entry(width=20)
weight_box.place(x=140, y=80)
bmi_box = tkinter.Entry(width=20)
bmi_box.place(x=140, y=230)
btn = tkinter.Button(tki, text='BMIを計算する。', command=btn_click)
btn.place(x=140, y=150)
tk.mainloop()
自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
import tkinter as tk
class Application(tk.Frame):
def __init__(self,master=None):
tk.Frame.__init__(self,master)
self.master.title('ダイエットのお手伝いします')
self.master.geometry('500x450')
self.ToDoNumber = 0
self.ToDo = []
self.txt = []
self.spent = []
self.spentNumber = []
self.creat_widgets()
self.pack()
def creat_widgets(self):
self.EditBox = tk.Entry(self,width = 30)
self.EditBox.grid(row=0,column=0)
Button = tk.Button(self,text ='追加')
Button.bind('<Button-1>',self.DeleteEntryValue)
Button.grid(row=0,column=1)
def DeleteEntryValue(self,event):
txtNew = tk.StringVar()
txtNew.set(self.EditBox.get())
ToDoNew = tk.Label(self,width=30,textvariable=txtNew)
self.txt.append(txtNew)
self.ToDo.append(ToDoNew)
self.ToDoNumber += 1
ToDoNew.grid(row=self.ToDoNumber,column=0)
spentNumberNew = tk.StringVar()
spentNumberNew.set('0')
spentNew = tk.Label(self,width=2,textvariable=spentNumberNew)
self.spent.append(spentNew)
self.spentNumber.append(spentNumberNew)
spentNew.grid(row=self.ToDoNumber,column=1)
self.EditBox.delete(0,tk.END)
def Button_click(self):
height = float()
weight = float()
BMI = weight/(height*height)
self.bmi_box.delete(0, tk.END)
self.bmi_box.insert(0, BMI)
height_lavel = tk.Label(text='身長[m]')
height_lavel.place(x=60, y=50)
weight_lavel = tk.Label(text='体重')
weight_lavel.place(x=60, y=80)
area_lavel = tk.Label(text='BMI')
area_lavel.place(x=60, y=230)
height_box = tk.Entry(width=20)
height_box.place(x=140, y=50)
weight_box = tk.Entry(width=20)
weight_box.place(x=140, y=80)
bmi_box = tk.Entry(width=20)
bmi_box.place(x=140, y=230)
button = tk.Button(tk,text='BMIを計算する。', command=Button_click)
button.place(x=140, y=150)
root = tk.Tk()
app = Application(master=root)
app.mainloop()
自分なりにつなげてみました。
実行ボタンを押してもなにも表示されません。
よろしくお願いします。
0