2015-07-21 31 views
-1

因此,我或多或少地廢棄了我的舊糖尿病計算器,使其成爲一個新的GUI。但現在我缺乏知識再次觸擊...如何將「計算能力」放入TKinter entrys?

任何人都可以幫助我如何創建一個TKinter條目計算器?

新代碼:

from tkinter import * 
root = Tk() 

root.wm_title("DiabetesC") 

label_1 =Label(root, text='Kolhydrater') 
label_2 =Label(root, text='Insulin igår?') 
label_3 =Label(root, text='Regel, 330/500?') 

label_version =Label(root, text='DiabetesC v.0.0.1 made by Pantburken') 

entry_1 = Entry(root) 
entry_2 = Entry(root) 
entry_3 = Entry(root) 

button_1 = Button(root, text='Räkna ut!') 

label_version.grid(row=0, column=1) 

label_1.grid(row=1, sticky=E) 
label_2.grid(row=2, sticky=E) 
label_3.grid(row=3, sticky=E) 

entry_1.grid(row=1, column=1) 
entry_2.grid(row=2, column=1) 
entry_3.grid(row=3, column=1) 

button_1.grid(row=4, sticky=E) 
root.mainloop() 

舊代碼:

kolhydrater = int(input('Hur många gram kolhydrater är det i livsmedlet? ') 
insulin = int(input('Hur många enheter insulin tog du igår? ') 
regeln = int(input('300/500/100 regeln? ') 
noname = int(regeln/insulin) 
enheter = int(kolhydrater/noname) 
print (enheter) 

所以其主要思想是把舊代碼的功能與GUI新的代碼,如果你明白我的意思嗎?

感謝您的回答!

+0

我不知道你在問什麼...你在尋找按鈕回調? – TigerhawkT3

+0

恩這是什麼?我問的是如何在三個框中輸入數字,Python會自動執行一個等式。你明白嗎? :) – Pantburken

+0

谷歌翻譯說,「Räknaut!」瑞典語是「計算」,所以看起來你有一個按鈕來執行計算。您希望用戶點擊按鈕,還是希望用戶輸入數字後自動進行計算?如果你想讓他們使用一個按鈕,你需要一個[回調](http://effbot.org/tkinterbook/button.html)。如果你想讓它自動發生,你還需要[跟蹤變量](http://effbot.org/tkinterbook/variable.htm)。 – TigerhawkT3

回答

1

我明白你的意願,我只是想告訴你,你應該嘗試給你的變量更有意義的名字。現在我沒有改變它們,只是注意到了。

這是你應該做的,按鈕需要有一個命令調用一個函數來計算公式,然後顯示在gui上。

from tkinter import * 

def calc_result(): 
    noname = int(entry_3.get())/int(entry_2.get()) 
    enheter = int(entry_1.get())/int(entry_2.get()) 
    label_4 =Label(root, text='Result, ' + str(enheter)) 
    label_4.grid(row=5, sticky=SE) 

root = Tk() 

root.wm_title("DiabetesC") 

label_1 =Label(root, text='Kolhydrater') 
label_2 =Label(root, text='Insulin igår?') 
label_3 =Label(root, text='Regel, 330/500?') 

label_version =Label(root, text='DiabetesC v.0.0.1 made by Pantburken') 

entry_1 = Entry(root) 
entry_2 = Entry(root) 
entry_3 = Entry(root) 

button_1 = Button(root, text='Räkna ut!', command=calc_result) 

label_version.grid(row=0, column=1) 

label_1.grid(row=1, sticky=E) 
label_2.grid(row=2, sticky=E) 
label_3.grid(row=3, sticky=E) 

entry_1.grid(row=1, column=1) 
entry_2.grid(row=2, column=1) 
entry_3.grid(row=3, column=1) 

button_1.grid(row=4, sticky=E) 
root.mainloop() 

注:

這將是更容易處理和管理類中的一切。

+1

我不是英語母語的人,但我不認爲你的問題是正確的:在這種情況下,你不需要助動詞'do',因爲你有'be'動詞,所以你的問題應該是: '我的回答有幫助嗎?' – nbro

+0

好吧..我的回答有幫助嗎? @Pantburken –

+0

我這麼認爲,但現在它告訴我:AttributeError:'Label'對象沒有'get'屬性。哦,我輸入方程錯誤...它應該像舊代碼(編輯它)@omri_saadon – Pantburken

0

您必須使用entry.get()獲取數據,因爲您無法在tkinter條目中進行數學運算。 首先得到所有的值,然後做數學..

+0

你能解釋更詳細嗎?不太明白:/ – Pantburken