2013-03-24 57 views
1

我正在为我的Programming Language课程在球拍上写一个Mastermind程序。我创建了一个基本的GUI来向用户显示信息。我想问用户“你想继续吗?是/否”,从GUI读取它们的输入,并将该输入存储到一个字符串中。我是Racket的新手,所以如果任何人都可以帮我弄清楚这将会很棒。谢谢!如何从球拍中的GUI读取输入?

+0

你有什么试过?您是否查看了GUI库的[documentation](http://docs.racket-lang.org/gui/)? – 2013-03-25 02:08:06

+0

嗨!我只是通过定义一个框架,编辑器画布和文本来创建一个简单的文本框来显示信息。我使用了(定义t(新文本%)),然后(发送t插入“输出文本”)在GUI中显示信息。但我不知道如何阅读输入。正如我所说我对Racket是全新的,所以我不太了解。我试着看文档,但不明白。 – spatra 2013-03-25 03:07:30

回答

2

如果您要求用户输入是/否,最好使用模式对话框。幸运的是,racket/gui附带一个名为message-box一个方便的功能,可以让你做到这一点:

(message-box "Title" "Do you wish to continue?" #f '(yes-no)) 

如果你确定你想用一个文本框,要求输入用户,你可能想使用text-field%对象(可能带有dialog%)而不是text%对象。看看文档中的widget gallery,看看text-field%是什么样的。您可以在用户按输入时触发的字段上设置回叫。

+0

感谢您的帮助。我尝试着使用文本框输入输入内容。我创建了一个新的文本字段%对象,但当输入“Y”和Enter时无法获得任何输入。您能否告诉我更多关于如何在用户按下Enter时触发的字段上设置回调?谢谢! – spatra 2013-03-25 05:37:20

+0

对不起,有很多评论,但只是可以肯定的是,在我的Racket程序中,我只想从GUI中取回字符串“Y”或“N”。我尝试使用消息框,它看起来非常方便,因为它暂停了程序执行,直到我点击yes或no,但如果我可以让程序了解哪个按钮正在被点击,那将会很棒。谢谢! – spatra 2013-03-25 05:45:35

+0

没关系,我想通了。函数式编程非常不同,但很有趣。谢谢你的帮助。 – spatra 2013-03-25 05:59:57