Python: калькулятор калькуляции - PullRequest
0 голосов
/ 22 ноября 2018

Добрый день всем

Я занят созданием небольшого калькулятора стоимости для отдела вывесок.Я не получаю калькулятор для вывода суммы.

Краткое описание: Вы вводите высоту и ширину, а затем, когда вы нажимаете Enter, необходимо отобразить стоимость.

Как получитьэто работать?Любые предложения, пожалуйста, и спасибо.

from tkinter import *
from tkinter import ttk

#Define the Functions here
def squeare(height,width):
    cost = ((float(height) * float(width))/1000000 * 650 * 1.15 * 1.50)
    return cost

window = Tk()
window.title("Costing Calculator V1.0")

mainframe = ttk.Frame(window, padding="20 20 20 20")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
window.columnconfigure(0, weight=1)
window.rowconfigure(0, weight=1)

height = StringVar()
width = StringVar()

#ttk.Label(mainframe, text="H").grid(column=1, row=1, sticky=E)
height_entry = ttk.Entry(mainframe, width=7, textvariable=height)
height_entry.grid(column=3, row=1, sticky=(W,E))

ttk.Label(mainframe, text="X").grid(column=5, row=1, sticky=E)

#ttk.Label(mainframe, text="W").grid(column=6, row=1, sticky=E)
width_entry = ttk.Entry(mainframe, width=7, textvariable=width)
width_entry.grid(column=7, row=1, sticky=(W,E))

ttk.Label(mainframe, text="=").grid(column=8, row=1, sticky=E)

#call function
#squeare()

window.mainloop()

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Я связал оконную раму ключом возврата.Существует пустая метка result .Всякий раз, когда вы нажимаете клавишу ввода, ее текст будет обновляться.

from tkinter import *
from tkinter import ttk

def squeare(height, width):
    cost = float(height) * float(width)/1000000 * 650 * 1.15 * 1.50
    result.configure(text=str(cost))

window = Tk()
window.title("Costing Calculator V1.0")

mainframe = ttk.Frame(window, padding="20 20 20 20")
mainframe.grid(column=0, row=0, sticky="nsew")
window.columnconfigure(0, weight=1)
window.rowconfigure(0, weight=1)

height = StringVar()
height.set(0)
width = StringVar()
width.set(0)

height_entry = ttk.Entry(mainframe, width=7, textvariable=height)
height_entry.grid(column=0, row=0, sticky="we")

ttk.Label(mainframe, text="X").grid(column=1, row=0, sticky="e")

width_entry = ttk.Entry(mainframe, width=7, textvariable=width)
width_entry.grid(column=2, row=0, sticky=(W,E))

ttk.Label(mainframe, text="=").grid(column=3, row=0, sticky="e")
result = ttk.Label(mainframe)
result.grid(row=0, column=4)

window.bind('<Return>', lambda e: squeare(height.get(), width.get()))

window.mainloop()

enter image description here

0 голосов
/ 22 ноября 2018

Это перехват события 'enter' для второго поля ввода.

from tkinter import *
from tkinter import ttk

#Define the Functions here
def squeare(height,width):
    cost = ((float(height) * float(width))/1000000 * 650 * 1.15 * 1.50)
    result.configure(text=str(cost))


def enter(event=None):
    squeare(height.get(), width.get())

window = Tk()
window.title("Costing Calculator V1.0")

mainframe = ttk.Frame(window, padding="20 20 20 20")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
window.columnconfigure(0, weight=1)
window.rowconfigure(0, weight=1)

height = StringVar()
width = StringVar()

#ttk.Label(mainframe, text="H").grid(column=1, row=1, sticky=E)
height_entry = ttk.Entry(mainframe, width=7, textvariable=height)
height_entry.grid(column=3, row=1, sticky=(W,E))

ttk.Label(mainframe, text="X").grid(column=5, row=1, sticky=E)

#ttk.Label(mainframe, text="W").grid(column=6, row=1, sticky=E)
width_entry = ttk.Entry(mainframe, width=7, textvariable=width)
width_entry.grid(column=7, row=1, sticky=(W,E))

width_entry.bind('<Return>',enter)

ttk.Label(mainframe, text="=").grid(column=8, row=1, sticky=E)
result = ttk.Label(mainframe, text="")
result.grid(column=9, row=1, sticky=E)

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