简单的对话框菜单可用于选择目录或文件。它们会返回一个字符串变量,然后可以与任何需要文件名的命令一起使用。
dirname = uigetdir () ¶dirname = uigetdir (init_path) ¶dirname = uigetdir (init_path, dialog_name) ¶打开GUI对话框以选择目录。
如果未给定init_path,则使用当前工作目录。
dialog_name可用于自定义对话框标题。
输出参数dirname是一个字符字符串,包含所选目录的名称。但是,如果点击了‘Cancel’按钮,则输出为类型 double 的值0。
[fname, fpath, fltidx] = uigetfile () ¶[…] = uigetfile (flt) ¶[…] = uigetfile (flt, dialog_name) ¶[…] = uigetfile (flt, dialog_name, default_file) ¶[…] = uigetfile (…, "MultiSelect", mode) ¶打开GUI对话框以选择文件,并返回文件名fname、该文件的路径fpath以及筛选器索引fltidx。
flt包含以下格式之一的文件筛选器字符串(列表):
"/path/to/filename.ext"如果给定了文件名,则提取文件扩展名并将其用作筛选器。此外,该路径被选为对话框中的当前路径,文件名被选为默认文件。示例:uigetfile ("myfcn.m")
"*.ext"示例:uigetfile ("*.ext")
第一列包含文件扩展名,第二列包含简要描述。示例:
uigetfile ({"*.ext", "My Description";"*.xyz", "XYZ-Format"})
筛选器字符串还可以包含以分号分隔的筛选器扩展名列表。示例:
uigetfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})
如果路径名的文件夹名包含尾部文件分隔符,则会显示该文件夹的内容。如果不存在尾部文件分隔符,则会列出父目录。最右侧文件分隔符(如果有)右边的子字符串将被解释为文件或目录名,如果该文件或目录存在,则会被高亮显示。如果路径名或目录名完全或部分不存在,则会显示当前工作目录。不会激活任何筛选器。
dialog_name可用于自定义对话框标题。
如果给定了default_file,则它将在GUI对话框中被预先选中。此外,如果给定了一个路径,它也将用作当前路径。
当将"MultiSelect"键设置为"on"时,可以选择两个或多个文件。在这种情况下,fname是一个包含这些文件的元胞数组。
输出参数fname和fpath是分别返回所选名称和路径的字符串。但是,如果点击了‘Cancel’按钮,则输出为类型 double,值为0。fltidx是所选的筛选器扩展名列表flt中的索引。
[fname, fpath, fltidx] = uiputfile () ¶[fname, fpath, fltidx] = uiputfile (flt) ¶[fname, fpath, fltidx] = uiputfile (flt, dialog_name) ¶[fname, fpath, fltidx] = uiputfile (flt, dialog_name, default_file) ¶打开GUI对话框以选择文件。
flt包含以下格式之一的文件筛选器字符串(列表):
"/path/to/filename.ext"如果给定文件名,则提取文件扩展名并将其用作筛选器。此外,该路径在对话框中被选为当前路径,文件名被选为默认文件。示例:uiputfile ("myfcn.m")
"*.ext"单个文件扩展名。示例:uiputfile ("*.ext")
{"*.ext", "My Description"}一个两列元胞数组,第一列包含文件扩展名,第二列包含简要说明。示例:uiputfile ({"*.ext","My Description";"*.xyz", "XYZ-Format"})
筛选器字符串还可以包含以分号分隔的筛选器扩展名列表。示例:uiputfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})
dialog_name可用于自定义对话框标题。如果给定了default_file,则它将在GUI对话框中被预先选中。此外,如果给定了一个路径,它也将用作当前路径。
fname和fpath分别返回所选的名称和路径。fltidx是所选的筛选器扩展名列表flt中的索引。
此外,还有一些用于显示帮助消息、警告或错误以及从用户处获取文本输入的对话框。
() ¶(msg) ¶(msg, title) ¶(msg, title, opt) ¶h = errordlg (…) ¶显示一个错误对话框,包含错误消息msg和标题title。
默认错误消息为"This is the default error string.",默认标题为"Error Dialog"。
错误消息可以有多行,用换行符("\ ")分隔,也可以是一个每行一个元素的 cellstr 数组。
第三个可选参数opt控制对话框的行为。有关详细信息,请参阅msgbox。
返回值h是用于构建对话框的图形对象的句柄。
示例:
errordlg ("Some fancy error occurred.");
errordlg ("Some fancy error\
with two lines.");
errordlg ({"Some fancy error", "with two lines."});
errordlg ("Some fancy error occurred.", "Fancy caption");
() ¶(msg) ¶(msg, title) ¶h = helpdlg (…) ¶显示一个帮助对话框,包含帮助消息msg和标题title。
默认帮助消息为"This is the default help string.",默认标题为"Help Dialog"。
帮助消息可以有多行,用换行符("\ ")分隔,也可以是一个每行一个元素的 cellstr 数组。
返回值h是用于构建对话框的图形对象的句柄。
示例:
helpdlg ("Some helpful text for the user.");
helpdlg ("Some helpful text\
with two lines.");
helpdlg ({"Some helpful text", "with two lines."});
helpdlg ("Some helpful text for the user.", "Fancy caption");
cstr = inputdlg (prompt) ¶cstr = inputdlg (prompt, title) ¶cstr = inputdlg (prompt, title, rowscols) ¶cstr = inputdlg (prompt, title, rowscols, defaults) ¶cstr = inputdlg (prompt, title, rowscols, defaults, options) ¶从多文本框输入对话框中返回用户输入。
输入参数:
一个字符串元胞数组,用于标注每个文本框。此参数是必需的。
用于对话框标题的字符串。默认为"Input Dialog"。
指定文本框的大小,可以采用四种形式:
要放置在每个文本框中的默认值列表。它必须是一个字符串元胞数组,大小与prompt相同。
不支持,仅用于MATLAB兼容性。
输出参数: 输出是一个字符串元胞数组,每个元素是用户输入的文本。如果对话框通过“取消”按钮关闭,则返回一个空元胞数组。
示例:
prompt = {"Width", "Height", "Depth"};
defaults = {"1.10", "2.20", "3.30"};
rowscols = [1,10; 2,20; 3,30];
dims = inputdlg (prompt, "Enter Box Dimensions", ...
rowscols, defaults);
[sel, ok] = listdlg (key, value, …) ¶返回列表对话框中的用户输入,以所选索引的向量(sel)以及指示用户如何关闭对话框的标志(ok)的形式。
sel中的索引基于1。
如果用户通过“确定”按钮关闭对话框,ok的值为1,否则为0(此时sel为空)。
输入参数以key、value对的形式指定。其中"ListString"参数对必须指定。
有效的key和value对有:
"ListString"一个字符串元胞数组,指定要在对话框中列出的项目。
"SelectionMode"可以是"Single"(一次只能选择一个项目)或"Multiple"(默认)。
"ListSize"一个二元向量[width, height],以像素为单位指定列表字段的大小。默认值为 [160, 300]。
"InitialValue"一个包含基于1的索引的向量,指定列表对话框首次显示时预先选中的元素。默认值为 1(第一项)。
"Name"用作对话框标题的字符串。默认值为 ""。
"PromptString"要显示在项目列表上方的字符串元胞数组。默认值为 {}。
"OKString"用于标注“确定”按钮的字符串。默认为"OK"。
"CancelString"用于标注“取消”按钮的字符串。默认为"Cancel"。
示例:
my_options = {"An item", "another", "yet another"};
[sel, ok] = listdlg ("ListString", my_options,
"SelectionMode", "Multiple");
if (ok == 1)
disp ("You selected:");
for i = 1:numel (sel)
disp (sprintf ("\ %s", my_options{sel(i)}));
endfor
else
disp ("You cancelled.");
endif
另请参阅:menu,errordlg,helpdlg,inputdlg,msgbox,questdlg,warndlg。
h = msgbox (msg) ¶h = msgbox (msg, title) ¶h = msgbox (msg, title, icon) ¶h = msgbox (msg, title, "custom", cdata) ¶h = msgbox (msg, title, "custom", cdata, colormap) ¶h = msgbox (…, opt) ¶使用消息对话框显示msg。
消息可以有多行,用换行符("\ ")分隔,也可以是一个每行一个元素的 cellstr 数组。
可选输入title(字符串)可用于装饰对话框标题。
可选参数icon选择对话框图标。它可以是"none"(默认)、"error"、"help"、"warn"或"custom"之一。后者后面必须跟一个图像数组cdata,对于索引图像,还要跟相关的颜色映射表。
最后一个可选参数opt控制对话框的行为。如果opt是字符串,则可以是以下之一:
"non-modal"(默认)对话框正常显示。
"modal"如果已经存在具有相同标题的任何对话框,则重复使用最近的那个,并关闭所有其他对话框。对话框以"modal"模式显示,这意味着它会阻止用户与任何其他GUI元素交互,直到该对话框关闭。
"replace"如果已经存在具有相同标题的任何对话框,则重复使用最近的那个,并关闭所有其他对话框。生成的对话框设置为"non-modal"。
如果opt是一个结构体,它必须包含字段"WindowStyle"和"Interpreter":
"WindowStyle"值必须为"non-modal"、"modal"或"replace"。见上文。
"Interpreter"控制用于显示消息的文本对象的"interpreter"属性。值必须为"tex"(默认)、"none"或"latex"。
返回值h是用于构建对话框的图形对象的句柄。
示例:
msgbox ("Some message for the user.");
msgbox ("Some message\
with two lines.");
msgbox ({"Some message", "with two lines."});
msgbox ("Some message for the user.", "Fancy caption");
## A message dialog box with error icon
msgbox ("Some message for the user.", "Fancy caption", "error");
btn = questdlg (msg) ¶btn = questdlg (msg, title) ¶btn = questdlg (msg, title, default) ¶btn = questdlg (msg, title, btn1, btn2, default) ¶btn = questdlg (msg, title, btn1, btn2, btn3, default) ¶使用问题对话框显示msg,并返回被点击按钮的标题。
消息可以有多行,用换行符("\ ")分隔,也可以是一个每行一个元素的 cellstr 数组。
可选的title(字符串)可用于指定对话框标题。默认为"Question Dialog"。
对话框可能包含两个或三个按钮,这些按钮都会关闭对话框。
字符串default标识默认按钮,该按钮在按下RETURN键时将被激活。如果未指定default,则使用第一个按钮。
示例:
btn = questdlg ("Close Octave?", "Really?", "Yes", "No", "Yes");
if (strcmp (btn, "Yes"))
exit ();
endif
c = uisetcolor () ¶c = uisetcolor (rgb) ¶c = uisetcolor (rgb, title) ¶打开一个颜色选择对话框。
RGB 颜色rgb指定初始选定的颜色。如果未指定rgb,则初始颜色设置为黑色(0,0,0)。
title是对话框窗口的标题字符串(可选)。
输出c是包含所选颜色的 RGB 三元组。
示例:
c = uisetcolor ([0.5 0.5 0.5], "Select a color");
() ¶(msg) ¶(msg, title) ¶(msg, title, opt) ¶h = warndlg (…) ¶显示一个警告对话框,包含警告消息msg和标题title。
默认警告消息为"This is the default warning string.",默认标题为"Warning Dialog"。
警告消息可以有多行,用换行符("\ ")分隔,也可以是一个每行一个元素的 cellstr 数组。
第三个可选参数opt控制对话框的行为。有关详细信息,请参阅msgbox。
返回值h是用于构建对话框的图形对象的句柄。
示例:
warndlg ("Some warning text for the user.");
warndlg ("Some warning text\
with two lines.");
warndlg ({"Some warning text", "with two lines."});
warndlg ("Some warning text for the user.", "Fancy caption");
() ¶(h) ¶(fontstruct) ¶(…, title) ¶fontstruct = uisetfont (…) ¶打开字体选择对话框。
如果第一个参数是文本、坐标轴或 uicontrol 对象的句柄,点击“确定”按钮将更改该对象的字体属性。
第一个参数也可以是一个结构体,包含字段FontName、FontWeight、FontAngle、FontUnits和FontSize,用于指示初始选定的字体。
对话框窗口的标题可以使用最后一个参数title指定。
如果请求了输出参数fontstruct,则返回选定的字体结构体。否则,字体信息将显示在屏幕上。
编程说明:在非原生使用 FontConfig 的系统上(除 Linux 外的所有系统),字体缓存在 Octave 安装时构建。安装新字体后,您需要手动运行 system ("fc-cache -fv")。
对于创建新的对话框类型,有一个 dialog 函数。
h = dialog () ¶h = dialog ("property", value, …) ¶创建一个空的模态对话框窗口,可以向其中添加其他 uicontrol 控件。
该对话框是一个图形对象,其属性设置为适合对话框的推荐值。
与普通图形对象不同的默认属性如下:
if isempty (allchild(gcbf)), close (gcbf), endif
[]
defaultuicontrolbackgroundcolor
关闭
callback
关闭
关闭
无
关闭
auto
关闭
modal
可以为对话框对象指定多个属性-值对,但它们必须成对出现。完整的属性列表请参阅 Figure Properties。
返回值h是所创建的图形对象的图形句柄。
示例:
## create an empty dialog window titled "My Dialog"
## containing a uicontrol with specified properties
h = dialog ("name", "My Dialog",
"position", [200 200 300 200]);
uicontrol ("parent", h, "style", "text",
"string", "Hello, World!",
"position", [80 80 150 40]);