2016-12-04 16 views
1

私はこのコードを持っており、基本的には私がしたいのは、ボタンを押すとボタンの残高がその金額で更新されることです。残高が現在15で、10を加算した場合、10を加算します。このボタンを更新するにはどうすればよいですか?

from tkinter import * 

def bal(): 
    ans = int (input1.get()) 
    total = IntVar() 
    tot = int (total.get()) 
    tot = tot + ans 
    res.set(tot+ans) 

root = Tk() 
root.geometry("1280x720") 

upper = Frame(root) 
upper.pack() 

Label(upper, text ="Sum:", font = ('raleway', 15),).grid(row=0, column = 0) 
Label(root, text ="Balance:", font = ('raleway', 15)).place(rely=1.0, relx=0, x=0, y=0, anchor=SW) 

res = StringVar() 

input1 = Entry(upper) 
num2 = Entry(root) 

result = Label(root, textvariable = res,font = ('raleway',13)) 

result.place(rely=1.0, relx=0, x=80, y=-2, anchor=SW) 

input1.grid(row=0,column=2) 

Button(upper, text ="Add Funds", command = bal).grid(row=4, column=2, ipadx = 65) 

mainloop() 

root.mainloop() 

私は、関数bal内で常に更新される合計を持つようにしましたが、何らかの理由で更新されません。私はPythonの初心者です、ところで:D あなたの助けてくれてありがとう!

答えて

0

新しいIntVarを作成しましたが、これには.getが使用されています。代わりにnum2を取得してそこに格納されている現在の番号を取得し、これに入力を加えてvarを更新したいと思っています。 bal()コマンド機能で

1

、あなたがする必要があるすべては、現在の入力値を取得し、現在の合計(バランス)、それらを一緒に追加して、実行中の合計を更新している:

from tkinter import * 

def bal(): 
    ans = input1.get() 
    ans = int(ans) if ans else 0 
    tot = int(res.get()) 
    tot = tot + ans 
    res.set(tot) 

root = Tk() 
root.geometry("1280x720") 

upper = Frame(root) 
upper.pack() 

Label(upper, text="Sum:", font=('raleway', 15)).grid(row=0, column=0) 
Label(root, text="Balance:", font=('raleway', 15)).place(rely=1.0, relx=0, 
                 x=0, y=0, anchor=SW) 
res = StringVar() 
res.set(0) # initialize to zero 
input1 = Entry(upper) 
result = Label(root, textvariable=res, font=('raleway', 13)) 
result.place(rely=1.0, relx=0, x=80, y=-2, anchor=SW) 
input1.grid(row=0,column=2) 
Button(upper, text="Add Funds", command=bal).grid(row=4, column=2, ipadx=65) 

root.mainloop() 
関連する問題