@leonfed

Как лучше отредактировать код, чтобы пользователь вводил числа, делался расчёт по условию и результат выводился на экран с помощью уведомления?

from tkinter import*
from tkinter import messagebox

def clicked():
    messagebox.showinfo('Результат')
    

def math(self,line1,line2,line3):
    self.line1=line1=type(float)
    self.lien2=line2=type(float)
    self.line3=line3=type(float)

    
    if line1==0:
       line1=line2*line3
       print(line1)
    if line2==0:
        line2=line1/line3
        print(line2)
    if line3==0:
        line3==line1/line2
        print(line3)
    else:
        if line1>0 and line2>0 and line3>0:
            print('the result is not required')

screen=Tk()
screen.geometry('250x250')
screen.title("rabbit")

tl1=Label("Расстояние")
tl2=Label("Время")
tl3=Label("Скорость")
line1=Entry()
line2=Entry()
line3=Entry()
tl1.pack()
line1.pack()
tl2.pack()
line2.pack()
tl3.pack()
line3.pack()

bt=Button(text='calculate',command=clicked)
bt.pack()

screen.mainloop()
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Вот так:
from tkinter import *
from tkinter.ttk import *
from tkinter.messagebox import *

def clicked():
    line1=float(line_1.get() or "0")#ноль чтобы пустая строка была 0
    line2=float(line_2.get() or "0")
    line3=float(line_3.get() or "0")
    
    if line1==0:
       line1=line2*line3
       showinfo('Расстояние',line1)
    if line2==0:
        line2=line1/line3
        showinfo('Время',line2)
    if line3==0:
        line3=line1/line2
        showinfo('Скорость',line3)
    else:
        if line1>0 and line2>0 and line3>0 and line3!=line1/line2:
            showerror('Результат','Неправильно заполнено')
    
screen=Tk()
screen.geometry('250x250')
screen.title("rabbit")

tl1=Label(screen,text="Расстояние")
tl2=Label(screen,text="Время")
tl3=Label(screen,text="Скорость")
line_1=Entry(screen)
line_2=Entry(screen)
line_3=Entry(screen)
tl1.pack()
line_1.pack()
tl2.pack()
line_2.pack()
tl3.pack()
line_3.pack()

bt=Button(screen,text='calculate',command=clicked)
bt.pack()

screen.mainloop()

не забывайте указывать родительский компонент - в любом виджите он идет первым.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы