lisp中如何获得按下ok按钮后的返回值
时间: 2024-02-04 08:02:06 浏览: 68
在 Lisp 中,您可以使用 `start_dialog` 函数启动一个对话框,并指定一个回调函数来处理用户交互。当用户点击对话框中的“OK”或“Cancel”按钮时,Lisp 会调用回调函数,并将用户的选择作为整数值返回。
具体来说,当用户点击“OK”按钮时,回调函数将返回整数值 `1`,而当用户点击“Cancel”按钮时,回调函数将返回 `nil`。您可以通过检查回调函数的返回值来确定用户的选择,并执行相应的操作。例如,以下代码显示一个带有“OK”和“Cancel”按钮的对话框,并在用户点击“OK”按钮时将 `d1` 变量的值设置为 `1`:
```
(setq d1 nil)
(defun my_dialog_callback (ctl)
(cond ((= ctl 1) ; 用户点击 OK 按钮
(setq d1 1)
(done_dialog 0))
((= ctl 2) ; 用户点击 Cancel 按钮
(done_dialog 0))))
(start_dialog
"My Dialog" ; 对话框标题
'(("OK" 1) ("Cancel" 2)) ; 控件列表
60 40 ; 对话框大小
'my_dialog_callback ; 回调函数
)
```
在上面的例子中,当用户点击“OK”按钮时,回调函数将设置变量 `d1` 的值为 `1`,并调用 `done_dialog` 函数关闭对话框。当用户点击“Cancel”按钮时,回调函数只调用 `done_dialog` 函数关闭对话框,而不对变量 `d1` 进行任何更改。
阅读全文