Как сделать кнопку для выполнения и отображения расчетов с использованием переменных, введенных в «Ввод» в Python с использованием модуля tkinter? - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу иметь возможность выполнить расчет x + y, когда нажата кнопка SOLVE.

При том, как я это сделал, мне все равно нужно вводить значения для x и y в консоли, а не в блоке ввода, и после нажатия кнопки SOLVE он возвращает:

"Ошибка типа: неподдерживаемые типы операндов для +: 'NoneType' и 'NoneType'

Код:

import tkinter
from tkinter import *

window = tkinter.Tk()
window.title("SOLVE MATH")

def solve_now():
    x= tkinter.Label(window, text="X").pack()
    X = tkinter.Entry(window, text=int(input("Enter X value: 
"))).pack()
    y = tkinter.Label(window, text="Y").pack()
    Y = tkinter.Entry(window, text=int(input("Enter Y value: 
"))).pack()
    ans = X + Y
    tkinter.Label(window, text=ans).pack()

tkinter.Button(window, text="SOLVE", 
command=solve_now).pack()


window.mainloop()

1 Ответ

1 голос
/ 25 сентября 2019

Это способ получения значений в tkinter entry для выполнения вычислений на нем. Чтобы добиться этого, вам нужно создать entry widget, а затем использовать функцию get для получения значения в записи для выполнения ваших расчетов.Подробнее о виджете записи здесь виджет записи

Использование input позволит вам ввести значение в консоли.Вы получаете Nonetype error, потому что вы должны расположить свой менеджер геометрии pack на следующей строке после функции entry widget.

entry1 = Entry(window )
entry1.pack()

Полный код

import tkinter
from tkinter import *


def solve_now():
    ans = float(float(entry1.get()) + float(entry2.get()))
    print(ans)
    l3.config(text="Answer : "+str(ans))



window = tkinter.Tk()
window.title("SOLVE MATH")

l1 = Label(window, text="Enter Value X")
l1.pack()
entry1 = Entry(window, )
entry1.pack()


l2 = Label(window, text="Enter value Y")
l2.pack()
entry2 = Entry(window)
entry2.pack()

b1 = Button(window, text="SOLVE",
command=solve_now)
b1.pack()


l3 = Label(window)
l3.pack()

window.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...