Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как использовать для расчетов числа, введенные в поля созданные tkinter? [RSS Feed]

#1 Фев. 6, 2017 08:40:19

daliyovowi
Зарегистрирован: 2017-02-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

Написал небольшой код для примера, но не понимаю, как использовать значения, введенные в поля для расчета. Например, нужно цифру 1 сложить с цифрой 2 и вывести в text.place . Это надо делать через Def, но куда ее вставлять и что писать? Сам процесс пытаюсь понять.

from tkinter import *

root = Tk()
root.title('Calculator')
root.minsize(width=270,height=320)
root.resizable(False,False)

v1 = Entry(root,width=20,bd=2)
v2 = Entry(root,width=20,bd=2)
l = Label(root,text ='Вводим две цифры:', font = 'Arial 10', fg='#CF0000')
c1 = Label(root, text = 'Цифра 1', font = 'Arial 10')
c2 = Label(root, text ='Цифра 2', font = 'Arial 10')

but=Button(root,text='Рассчитать',width=15)
text = Text(root,width=25,height=6,font='12',wrap=WORD)

l.grid(row=0,column=2) # это все можно заменить на _.place(x=_,y=_)
v1.grid(row=1,column=2,padx=20,pady=5)
v2.grid(row=2,column=2,padx=20,pady=5)
c1.grid(row=1,column=1,pady=5)
c2.grid(row=2,column=1,pady=5)

but.place(x=81,y=150)
text.place(x=22,y=190)
mainloop()

Отредактировано daliyovowi (Фев. 6, 2017 08:41:14)

Офлайн

#2 Фев. 6, 2017 08:47:53

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

На нажатие клавиши “рассчитать” нужно вешать обработчик события. В нем получать из полей значения и выполнять над ними операции.

Офлайн

#3 Фев. 6, 2017 09:01:58

daliyovowi
Зарегистрирован: 2017-02-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

Спасибо. Это мой “первый” тинкер и поэтому я даже не понимаю что такое обработчик. Напишите с примерами, так сказать для туповатых

Отредактировано daliyovowi (Фев. 6, 2017 09:07:15)

Офлайн

#4 Фев. 6, 2017 11:38:26

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

Держите…

 #
def work(event, v1, v2):
    print(v1.get())
    print(v2.get())
#
but=Button(root,text='Рассчитать',width=15)
but.bind("<Button-1>", lambda event: work(event, v1, v2))

Офлайн

#5 Фев. 6, 2017 12:13:13

daliyovowi
Зарегистрирован: 2017-02-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

1. После этого кода v1.get() переменные являются скорее текстом, поэтому при операции 5+5 получается 55.
2. Нужно чтобы результат выводился в text.place(x=22,y=190)

Собственно так я уже делал, после чего и написал на форум. С меня спасибо и плюс к карме

Офлайн

#6 Фев. 6, 2017 12:49:58

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

daliyovowi
На будущее.
1. Выкладывайте свои потуги. Это поможет понять где Вы слегли.
2. Пишите задание целиком, а не урезок с последующим добавлением.
3. Перед тем, как садиться за gui, почитайте что-нибудь по основам.

 #
def work(event, v1, v2):
    text.insert("0.end", int(v1.get()) + int(v2.get())
#
but=Button(root,text='Рассчитать',width=15)
but.bind("<Button-1>", lambda event: work(event, v1, v2, text))

Офлайн

#7 Фев. 6, 2017 13:48:04

daliyovowi
Зарегистрирован: 2017-02-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

Не выходит

 from tkinter import *
def work(event, v1, v2):
    text.insert("0.end", int(v1.get()) + int(v2.get()))
root = Tk()
root.title('Calculator')
root.minsize(width=270,height=320)
root.resizable(False,False)
v1 = Entry(root,width=20,bd=2)
v2 = Entry(root,width=20,bd=2)
l = Label(root,text ='Вводим две цифры:', font = 'Arial 10', fg='#CF0000')
c1 = Label(root, text = 'Цифра 1', font = 'Arial 10')
c2 = Label(root, text ='Цифра 2', font = 'Arial 10')
but=Button(root,text='Рассчитать', width=15)
but.bind("<Button-1>", lambda event: work(event, v1, v2, text))
text = Text(root,width=25,height=6,font='12',wrap=WORD)
l.grid(row=0,column=2) # это все можно заменить на _.place(x=_,y=_)
v1.grid(row=1,column=2,padx=20,pady=5)
v2.grid(row=2,column=2,padx=20,pady=5)
c1.grid(row=1,column=1,pady=5)
c2.grid(row=2,column=1,pady=5)
but.place(x=81,y=150)
text.place(x=22,y=190)
mainloop()

Выводит при нажатии на кнопку “Рассчитать”:

Exception in Tkinter callback
Traceback (most recent call last):
File “C:\ProgramData\Anaconda3\lib\tkinter\__init__.py”, line 1699, in __call__
return self.func(*args)
File “<ipython-input-10-e09b328c9e52>”, line 18, in <lambda>
but.bind(“<Button-1>”, lambda event: work(event, v1, v2, text))
TypeError: work() takes 3 positional arguments but 4 were given

Отредактировано daliyovowi (Фев. 6, 2017 13:48:28)

Офлайн

#8 Фев. 6, 2017 14:10:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

daliyovowi
Уважаемый, у вас в чем проблема? Вы считать не умеете?



Офлайн

#9 Фев. 6, 2017 14:23:47

daliyovowi
Зарегистрирован: 2017-02-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

Вот вы знаете, некоторые люди не умеют этого делать. А я, я просто очень невнимательный

Всем спасибо большое за помощь Вопрос решен. Плюсанул тех, кто не остался в стороне.

Отредактировано daliyovowi (Фев. 6, 2017 14:26:23)

Офлайн

#10 Фев. 6, 2017 14:33:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как использовать для расчетов числа, введенные в поля созданные tkinter?

daliyovowi
А я, я просто очень невнимательный
А при чем тут внимательность? Вам белым по черному написали
 TypeError: work() takes 3 positional arguments but 4 were given
три надо, четыре дали



Офлайн

  • Начало
  • » GUI
  • » Как использовать для расчетов числа, введенные в поля созданные tkinter?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version