Увеличивать каждый раз, когда я нажимаю кнопку + - PullRequest
0 голосов
/ 08 мая 2018

Я работаю над этой программой Incrementor Decrementor. Где сначала я ввожу число, а когда я нажимаю +, введенный номер увеличивается на 1 и уменьшается, когда я нажимаю - ... Проблема в том, что значение увеличивается или увеличивается уменьшается только один раз.

from tkinter import *

#******* Functions code ********

def add(event):
    a=float(enter.get())
    b=a+1
    labelresult=Label(root,text="Result : %2f"%b).grid(row=3,column=1)
    return


def sub(event):
    a=float(enter.get())
    b=a-1
    labelresult=Label(root,text="Result : %2f"%b).grid(row=3,column=1)
    return

#******* GUI code***********

root=Tk()
root.geometry('250x250')
root.title('Incrementor or Decrementor')

enter=IntVar()

label=Label(root,text="Skz.inc",bg='skyblue',fg='red').grid(row=0,column=1)

label=Label(root,text="enter a number").grid(row=1)

entry_1=Entry(root,textvariable=enter).grid(row=1,column=1)

button1=Button(root,text='+')
button1.grid(row=2,column=0)
button1.bind('<Button-1>',add)


button2=Button(root,text='-')
button2.grid(row=2,column=3)
button2.bind('<Button-1>',sub)

root.mainloop()

Таким образом, введенное мной значение должно увеличиваться или уменьшаться при каждом нажатии кнопки + или -. Пример - когда я ввожу 9 и нажимаю +, результат должен быть 10 (работает в моей программе). Снова при нажатии кнопки + результат должен быть 11, что не так в моем коде. Помогите мне, ребята. Измените и отправьте мне код.

Спасибо

1 Ответ

0 голосов
/ 08 мая 2018

При каждом нажатии + или - функция считывает значение в записи. Вам нужно будет обновить значение в записи для каждого добавления или подпрограммы.

def add(event):
    a=float(enter.get())
    b=a+1
    labelresult.config(text="Result : %2f"%b)  # Update labelresult instead of 
                                               # creating a new label every time
    enter.set(b)   # Set entry to the new value
    return

Вам нужно будет создать labelresult в коде GUI:

labelresult = Label(root)
labelresult.grid(row=3,column=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...