如何为我的转换创建函数

时间:2019-04-26 23:41:45

标签: python zelle-graphics

这些是我的项目的说明。

  

为转换定义不同的功能。调用这些函数。

我已经用输入框和文本框创建了窗口。我有一个函数,但我知道我应该使用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)

我希望将克,千克和盎司的换算形式显示在我创建的文本框中,但似乎无法弄清楚。

* EDIT现在,我可以在窗口中显示转化了。我的问题是让我的关闭按钮起作用。如果我将其放在While True之前,则用户必须双击以进行转换。我已经更新了上面的代码。

1 个答案:

答案 0 :(得分:0)

  

我希望将克,千克和盎司的换算显示在文本中   我创建的盒子

问题在于,除了从未真正调用setText()之外,您还没有创建文本框,而是创建了 rectangles ,它们对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() 方法。我已经重新整理并清理了以下代码,以使其基本起作用:

sed

现在,您需要遵循以下分配要求:处理用户输入的非数字内容;为转换定义不同的功能,而不是一种常见的功能。一个“退出”按钮将是一个不错的选择。而且,使GUI更令人愉悦也不会受到伤害...

enter image description here