Как создать функцию для моих конверсий - PullRequest
0 голосов
/ 27 апреля 2019

Это инструкции для моего проекта.

Определить различные функции для преобразований. Вызовите эти функции.

Я создал свое окно с полем ввода и текстовыми полями. У меня есть функция, но я знаю, что должен использовать setText() для отображения расчетов в моих текстовых полях. И я думаю, что мне нужно использовать оператор для части «неверный ввод».

entry1= Entry(Point(win.getWidth()/2,100),25)
entry1.setFill("White")
entry1.draw(win)

gramstext= Text(Point(160,136), "Grams")
gramstext.setTextColor("black")
gramstext.draw(win)

gramsbox= Rectangle(Point(107,147),Point(294,175))
gramsbox.setFill("white")
gramsbox.draw(win)

kilotext= Text(Point(160,195), "Kilograms")
kilotext.setTextColor("black")
kilotext.draw(win)

kilobox= Rectangle(Point(107,207),Point(294,235))
kilobox.setFill("white")
kilobox.draw(win)


ouncetext= Text(Point(160, 250), "Ounces")
ouncetext.setTextColor("black")
ouncetext.draw(win)

ouncebox= Rectangle(Point(107, 262),Point(294,290))
ouncebox.setFill("white")
ouncebox.draw(win)

#From here on is the updated code

button1= Rectangle(Point(142,290),Point(206,310))
button1.setOutline("black")
button1.setFill("white")
button1.draw(win)

button= Text(Point(win.getWidth()/3.5,300),"Convert")
button.setOutline("black")
button.draw(win)

closebutton1= Rectangle(Point(362, 290),Point(438,310))
closebutton1.setOutline("black")
closebutton1.setFill("white")
closebutton1.draw(win)

closebutton = Text(Point(win.getWidth() / 1.5, 300), "Close")
closebutton.setOutline("black")
closebutton.draw(win)

Я хочу, чтобы мои преобразования в граммах, килограммах и унциях отображались в текстовых полях, которые я создал, но, похоже, я не могу этого понять.

* РЕДАКТИРОВАТЬ Теперь я могу отображать свои конверсии в окне. Моя проблема - заставить мою кнопку закрытия работать. Если я поставлю его раньше, пока True, пользователь должен будет дважды щелкнуть, чтобы конвертировать. Я обновил код выше.

1 Ответ

0 голосов
/ 27 апреля 2019

Я хочу, чтобы мои преобразования в граммах, килограммах и унциях отображались в тексте коробки, которые я создал

Проблема в том, что вы никогда не вызывали poundsTo(), вы не создали текстовые поля , вы создали прямоугольников , которые не отвечают на метод setText() , Я переработал и очистил ваш код ниже, чтобы он работал в основном:

from graphics import *

def poundsTo():
    grams = number * 452.592
    kgrams = number / 0.453592
    ounces = number * 16

    gramsbox.setText(grams)
    kilobox.setText(kgrams)
    ouncebox.setText(ounces)

win = GraphWin("Conversions", 600, 400)

poundstext = Text(Point(160, 50), "Pounds:")
poundstext.draw(win)

poundsbox = Entry(Point(win.getWidth() / 2, 50), 25)
poundsbox.setFill("White")
poundsbox.draw(win)

gramstext = Text(Point(160, 100), "Grams:")
gramstext.draw(win)

gramsbox = Text(Point(win.getWidth() / 2, 100), "")
gramsbox.draw(win)

kilotext = Text(Point(160, 150), "Kilograms:")
kilotext.draw(win)

kilobox = Text(Point(win.getWidth() / 2, 150), "")
kilobox.draw(win)

ouncetext = Text(Point(160, 200), "Ounces:")
ouncetext.draw(win)

ouncebox = Text(Point(win.getWidth() / 2, 200), "")
ouncebox.draw(win)

button = Text(Point(win.getWidth() / 2, 300), "Convert")
button.draw(win)

while True:
    win.getMouse()

    number = int(poundsbox.getText())
    poundsTo()

Теперь вам нужно соблюдать требования к назначению: иметь дело с тем, что пользователь вводит что-то, что не является числом; определяя различные функции для преобразований, а не одну общую. Кнопка «Выход» была бы хорошим дополнением. Кроме того, сделать графический интерфейс более приятным тоже не повредит ...

enter image description here

...