创建对话框
modal | 阻止访问前端的其它元素,直至对话框关闭,并且必须使用选项 Modal 明确设置 |
blocking | 阻止内核运行,直至对话框关闭 |
模态(modal)对话框要求用户在做任何其它事情之前对对话框作出响应. 这样前端就可以获取完成或者发起一次计算所需的信息. 例如,当大部分应用程序关闭的时候,将出现一个模态对话框,提示用户保存所作的改动. 由于用户响应对决定应用程序应该如何关闭很重要,对话框将阻止用户访问程序的其它部分,直到用户对其做出响应. 设置选项 Modal->True 将使对话框具有模态属性.
注意:当对话框打开时,模态对话框将阻止用户访问其它笔记本. 如果没有关闭对话框的机制,Wolfram 语言将停止运行.
阻止(blocking)对话框暂停计算,直至用户对其作出响应,但是它并不阻止用户访问前端的其它部分. 运行对话框计算的内核将暂停直至对话框关闭. 例如,一个选择对话框将启动一次计算,并且进行等待直至用户选择一个值,然后通过返回该值完成计算. 任何在对话框打开时通过主链接发送的计算将依次排队等待,只要对话框一关闭,就执行计算.
DefaultButton[] | 关闭一个对话框的 OK 按钮,并且当按住 Enter 时是默认的 |
DefaultButton[action] | 标签为 OK 的按钮,并且当它被点击或者按下 Enter 时计算 action |
DefaultButton[label,action] | 标签为 label 的按钮,并且当它被点击或者按下 Enter 时计算 action |
CancelButton[] | 关闭一个对话框的 Cancel 按钮,当按下 Esc 时,它是默认的 |
CancelButton[action] | 标签为 Cancel 的按钮,当它被点击或者按下 Esc 时计算 action |
CancelButton[label,action] | 标签为 label 的按钮,当它被点击或者按下 Esc 时计算 action |
ChoiceButtons[] | 一对 OK 和 Cancel 按钮 |
ChoiceButtons[{actok,actcancel}] | 当点击时计算相应的 acti 的 OK 和 Cancel 按钮 |
ChoiceButtons[{lblok,lblcancel},{actok,actcancel}] | |
标签为 lbli 的 OK 和 Cancel 按钮,当点击时计算相应的 acti |
在利用 DialogInput 或者 CreateDialog 创建的对话框中,按下 Enter 等价于点击 OK(默认)按钮,而按下 Esc 等价于点击 Cancel 按钮. 如果在单个对话框中存在几个默认按钮,Enter 将使用对话框中的第一个按钮. 类似地,按下 Esc 将使用对话框中的第一个 Cancel 按钮.
ChoiceButtons 将对当前计算机系统显示默认和取消按钮.
CreateDialog[expr] | 在前端创建并且打开包括 expr 的一个对话框笔记本 |
DialogNotebook[{cell1,cell2,…}] | 一个对话框笔记本的单元内表示,前端可以对其进行操作 |
MessageDialog[expr] | 在前端创建并且打开包括 expr 的一个消息对话框笔记本 |
DialogReturn[expr] | 关闭一个对话框窗口,并且从对话框返回表达式 expr |
Modal | CreateDialog 的选项,指定所创建的对话框是否对于前端应该是模态的(modal) |
注意:模态对话框将在对话框打开时,阻止用户访问前端的其它笔记本. 如果不存在关闭对话框的机制,Wolfram 语言将停止运行.
有时候,通过使用带有 Beep 的消息对话框引入听得见的提示音也是很有用的.
除了接受输入,对话框也可以在关闭时计算表达式. 这可以通过使用 DialogReturn 实现. 下面的模态对话框接受用户输入,并且计算一个变量赋值.
DialogReturn[expr] | 关闭一个对话框窗口,并且从对话框返回表达式 expr |
DialogInput[expr] | |
ChoiceDialog[expr] | 在前端创建并且打开包含 expr 的一个选择对话框笔记本 |
如果阻止对话框通过按钮或者行为菜单抛出,则把按钮行为通过主链接传递,以避免超时. 这可以通过设置 Method->"Queued" 设置.
Wolfram 语言也通过使用 SystemDialogInput、前端令牌、特定用户按钮函数包括 FileNameSetter、ColorSlider 和 ColorSetter 来访问系统对话框.
SystemDialogInput["FileOpen"] | 打开系统文件打开对话框,并且返回选定的文件路径 |
SystemDialogInput["FileSave"] | 打开系统文件保存对话框,并且返回选定的文件路径 |
SystemDialogInput["Color"] | 打开系统色彩选择对话框,并且返回选定的 RGBColor 值 |
FrontEndTokenExecute["PrintDialog"] | |
打开系统打印对话框,并且显示当前笔记本 |
这里打开系统色彩对话框,并且返回选定色彩的 RGBColor 值.
FileNameSetter[name,"Open"] | 创建一个 Browse 按钮,打开系统文件打开对话框并且把值用 name 保存 |
FileNameSetter[name,"OpenList"] | 创建一个 Browse 按钮,打开系统多个文件打开对话框,并且把值用 name 保存 |
FileNameSetter[name,"Save"] | 创建一个 Browse 按钮,打开系统文件保存对话框,并且把值用 name 保存 |
FileNameSetter[name,"Directory"] | 创建一个 Browse 按钮,打开系统目录选择对话框,并且把值用 name 保存 |
ColorSetter[color] | 创建一个设置为 color 的样本按钮,当点击时打开系统色彩选择对话框 |
ColorSlider[color] | 创建一个设置为 color 的色彩滑动条,当双击时打开系统色彩选择对话框 |
Input[] | 读入整个表达式作为输入 |
Input[prompt] | 要求输入,prompt 显示为 "prompt" |
Input[prompt,init] | 要求输入,prompt 显示为 "prompt",其中 init 是输入域的初始内容 |
InputString[] | 将一个由字符组成的字符串作为输入读入 |
InputString[prompt] | 要求输入,prompt 显示为 "prompt" |
InputString[prompt,init] | 要求输入,prompt 显示为 "prompt",其中 init 是输入域的初始内容 |
注意:在基于文本的界面下,Input 和 InputString 将等待标准输入,在换行时结束. 查看 "要求输入" 以获取更多信息.