2016-12-26 37 views
1

我最近被賦予創建需要使用菜單的程序的任務。但是,我不知道如何創建一個窗口並使其顯示可以使用某個鍵進行交互的文本,比如說'輸入'鍵。有沒有人有關於如何做到這一點的提示?如何在計劃中創建交互式菜單

回答

1

Scheme報告沒有GUI支持,因此唯一的便攜式應用程序將是CLI界面。這是一個非常簡單的程序,只有這些部分。

#!r6rs 
(import (rnrs)) 

(define *stdin* (current-input-port)) 
(define (readline) 
    (get-line *stdin*)) 

;;; displays a textual menu 
(define (menu) 
    (display "Menu\n1. read input\n2. print data\n3. empty input\n")) 

;; read until we got the value between 1 and 3 from user 
(define (read-command) 
    (display "Enter choice [1-3] >") 
    (let* ((in (readline)) 
     (n (string->number in))) 
    (cond ((<= 1 n 3) n) 
      (else 
      (display "Invalid choice \"") 
      (display in) 
      (display "\"\n") 
      (read-command))))) 


(define (driver data) 
    (menu) 
    (let ((choice (read-command))) 
    (cond ((= choice 1) (display "Enter text >") 
         (driver (cons (readline) data))) 
      ((= choice 2) (display "Data:\n") 
         (display data) 
         (newline) 
         (driver data)) 
      (else (display "Emptied\n") 
       (driver '()))))) 

(driver '()) 

當然,單獨的實現有GUI支持。例如。球拍有創建桌面應用程序的方式,其中菜單可以是您點擊的按鈕。