dialog
创建空的模态对话框
说明
指定一个或多个 d
= dialog(Name,Value
)Figure
属性名称及其对应值。使用该语法可覆盖默认属性。
示例
包含文本和按钮的对话
使用 uicontrol
函数将用户界面控件添加到对话框中。例如,创建一个名为 mydialog.m
的程序文件,用来显示包含文本和按钮的对话。
function mydialog d = dialog('Position',[300 300 250 150],'Name','My Dialog'); txt = uicontrol('Parent',d,... 'Style','text',... 'Position',[20 80 210 40],... 'String','Click the close button when you''re done.'); btn = uicontrol('Parent',d,... 'Position',[85 20 70 25],... 'String','Close',... 'Callback','delete(gcf)'); end
接下来,从命令行窗口运行 mydialog
函数。
mydialog
返回输出的对话
使用 uiwait
函数基于用户在对话框中选择的内容返回输出。例如,创建一个名为 choosedialog.m
的程序文件以便执行这些任务:
调用
dialog
函数可以创建具有特定大小和位置、标题为“Select One”的对话。调用
uicontrol
函数三次可以分别添加文本、弹出式菜单和按钮。定义函数
popup_callback
,将其用作该按钮的回调函数。调用
uiwait
函数可待至用户关闭对话之后再将输出返回到命令行。
function choice = choosedialog d = dialog('Position',[300 300 250 150],'Name','Select One'); txt = uicontrol('Parent',d,... 'Style','text',... 'Position',[20 80 210 40],... 'String','Select a color'); popup = uicontrol('Parent',d,... 'Style','popup',... 'Position',[75 70 100 25],... 'String',{'Red';'Green';'Blue'},... 'Callback',@popup_callback); btn = uicontrol('Parent',d,... 'Position',[89 20 70 25],... 'String','Close',... 'Callback','delete(gcf)'); choice = 'Red'; % Wait for d to close before running to completion uiwait(d); function popup_callback(popup,event) idx = popup.Value; popup_items = popup.String; choice = char(popup_items(idx,:)); end end
从命令行窗口运行 choosedialog
函数。然后,在对话框中选择一种颜色。
color = choosedialog
关闭该对话框时,choosedialog
返回最后选择的颜色。
color = Blue
注意
uiwait
函数阻止 MATLAB® 线程。虽然 uiwait
在简单的模态对话框中工作良好,但不建议您用在较复杂的应用程序中。
输入参数
名称-值参数
示例: dialog('WindowStyle','normal')
将 WindowStyle
属性设置为 'normal'
。
此处所列的属性只是一部分。有关完整列表,请参阅 Figure 属性。
Position
— 可绘制区域的位置和大小
[left bottom width height]
可绘制区域的位置和大小,指定为 [left bottom width height]
形式的向量。此区域不包括图窗边框、标题栏、菜单栏和工具栏。
此表介绍 Position
向量中的每个元素。
元素 | 描述 |
---|---|
left | 从主画面左边缘到窗口的内部左边缘的距离。在具有多个监视器的系统上,此值可能为负数。 如果图窗已停靠,则此值相对于 MATLAB 桌面中的“图窗”面板。 |
bottom | 从主画面下边缘到窗口的内部下边缘的距离。在具有多个监视器的系统上,此值可能为负数。 如果图窗已停靠,则此值相对于 MATLAB 桌面中的“图窗”面板。 |
width | dialog 的左右内部边缘之间的距离。 |
height | 窗口的上下内部边缘之间的距离。 |
所有测量值都采用 Units
属性指定的单位。
图窗停靠时不能指定图窗的 Position
属性。
在 MATLAB Online™ 中,Position
向量的 bottom
和 left
元素被忽略。
要放置包括边框、标题栏、菜单栏和工具栏在内的整个窗口,请使用 OuterPosition
属性。
注意
Windows® 操作系统会强制应用最小窗口宽度和最大窗口大小。如果您指定的图窗尺寸超出这些限制,将按照这些限制而不是指定的尺寸显示图窗。
ButtonDownFcn
— 按钮按下回调
''
(默认) | 函数句柄 | 元胞数组 | 字符向量
按钮按下回调,指定为下列值之一:
函数句柄。
第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参量。
包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。
只要用户点击图窗中的空白区域,就会执行此回调。
有关将回调属性值指定为函数句柄、元胞数组或字符向量的详细信息,请参阅Specify a Callback Function。
使用 SelectionType
属性确定用户是否按下了修改键。
WindowStyle
— 窗口样式
'modal'
(默认) | 'normal'
| 'docked'
窗口样式,指定为下列值之一:
'modal'
- 该图窗显示在所有现有图窗窗口的上方,并使这些窗口变得无法访问(只要顶层图窗存在并保持模态)。但是,任何在模态图窗之后创建的新图窗都会显示出来。存在多个模态窗口时,最新创建的窗口将会保持焦点并位于所有其他窗口之上,直到变得不可见、恢复为正常窗口样式或被删除。此时,焦点会重新回到上次具有焦点的窗口。
'normal'
- 此图窗窗口独立于其他窗口,并且在显示图窗时可以访问其他窗口。'docked'
- 图窗显示在桌面或文档窗口中。如果WindowStyle
属性设置为'docked'
,则无法将DockControls
属性设置为'off'
。MATLAB Online 中不支持'docked'
选项。
注意
以下是 WindowStyle
属性的一些重要特性和一些推荐的最佳做法:
模态窗口样式行为
WindowStyle
设为 'modal'
时,图窗窗口将会捕获所有 MATLAB 窗口(只要可见)上的全部键盘和鼠标操作。属于应用程序而非 MATLAB 的窗口不受影响。
模态图窗获得焦点时键入 Ctrl+C 会导致图窗恢复到 'normal'
WindowStyle
属性设置。这样用户可以在命令行键入内容。
WindowStyle
属性设置为 'modal'
并且 Visible
属性设置为 'off'
的图窗在 MATLAB 使它们变得可见之前不会以模态方式运行。因此,您可以隐藏模态窗口供以后重用,而不用销毁它。
模态图窗不显示菜单子级、内置菜单或工具栏。但是,在模态图窗中创建菜单或在具有菜单子级的图窗上将 WindowStyle
属性设置更改为 'modal'
并不是错误。Menu
对象会存在,而且图窗会保留它们。如果您将图窗的 WindowStyle
属性重置为 'normal'
,则会显示菜单。
输出参量
d
— 对话窗口
Figure
对象
对话窗口,以 Figure
对象形式返回,该对象设置了以下属性值。
属性 | 值 |
---|---|
ButtonDownFcn | 'if isempty(allchild(gcbf)), close(gcbf), end' |
Colormap | [] |
DockControls | 'off' |
HandleVisibility | 'callback' |
IntegerHandle | 'off' |
InvertHardcopy | 'off' |
MenuBar | 'none' |
Number | [] |
NumberTitle | 'off' |
PaperPositionMode | 'auto' |
Resize | 'off' |
WindowStyle | 'modal' |
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)