2013-03-24 22 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