35.1 I/O对话框

简单的对话框菜单可用于选择目录或文件。它们会返回一个字符串变量,然后可以与任何需要文件名的命令一起使用。

 
: dirname = uigetdir ()
: dirname = uigetdir (init_path)
: dirname = uigetdir (init_path, dialog_name)

打开GUI对话框以选择目录。

如果init_path未给定使用的当前起作用目录。

dialog_name可以用于自定义对话框标题。

输出dirname是一个字符串,其中包含所选目录的名称。但是,如果Cancel按钮,则输出为带值的double类型0.

详见: uigetfile, uiputfile.

广告
 
: [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")

广告
A single file extension "*.ext"

实例uigetfile ("*.ext")

广告
A 2-column cell array

在第一列中包含文件扩展名,在第二列中包含简要描述。实例uigetfile ({"*.ext", "My Description";"*.xyz", "XYZ-Format"})

筛选器字符串还可以包含以分号分隔的筛选器扩展名列表。实例uigetfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})

广告
A directory name or path name

如果路径名的文件夹名包含尾随文件分隔符,则会显示该文件夹的内容。如果不存在尾随文件分隔符,则会列出父目录。最右边的文件分隔符(如果有)右边的子字符串将被解释为文件或目录名,如果该文件或目录存在,它将被突出显示。如果路径名或目录名完全或部分不存在,则会显示当前起作用目录。没有任何筛选器处于活动状态。

广告

dialog_name可以用于自定义对话框标题。

如果default_file则将在GUI对话框中进行选择。此外,如果给定一条路径,它也将用作当前路径。

设置时可以选择两个或多个文件"MultiSelect"keyto"on"那样的话fname是一个包含文件的元胞数组。

输出fnamefpath是分别返回所选名称和路径的字符串。但是,如果Cancel按钮单击,输出类型为double,值为0. fltidx是筛选器扩展列表中的索引flt被选中。

详见: uiputfile, uigetdir.

广告
 
: [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对话框中预先选择。此外,如果给定一条路径,它也将用作当前路径。

fnamefpath分别返回所选的名称和路径。fltidx是筛选器扩展列表中的索引flt被选中。

详见: uigetfile, uigetdir.

广告

此外,还有一些对话框用于显示帮助消息、警告或错误,以及从用户处获取文本输入。

 
: errordlg ()
: errordlg (msg)
: errordlg (msg, title)
: errordlg (msg, title, opt)
: h = errordlg (…)

显示带有错误消息的错误对话框msg和标题title.

默认错误消息为"This is the default error string."默认标题为"Error Dialog".

错误消息可能有多行用换行符(“\n”)分隔,也可能是一个每行有一个元素的cellstr数组。

第三个可选参数opt控制对话框的行为。有关详细信息,详见msgbox.

返回值h是用于构建对话框的图形对象的句柄。

示例:

errordlg ("Some fancy error occurred.");
errordlg ("Some fancy error\nwith two lines.");
errordlg ({"Some fancy error", "with two lines."});
errordlg ("Some fancy error occurred.", "Fancy caption");

详见: helpdlg, warndlg, msgbox, inputdlg, listdlg, questdlg.

广告
 
: helpdlg ()
: helpdlg (msg)
: helpdlg (msg, title)
: h = helpdlg (…)

显示包含帮助消息的帮助对话框msg和标题title.

默认的帮助消息是"This is the default help string."默认标题为"Help Dialog".

帮助消息可能有多行,用换行符(“\n”)分隔,也可能是一个每行有一个元素的cellstr数组。

返回值h是用于构建对话框的图形对象的句柄。

示例:

helpdlg ("Some helpful text for the user.");
helpdlg ("Some helpful text\nwith two lines.");
helpdlg ({"Some helpful text", "with two lines."});
helpdlg ("Some helpful text for the user.", "Fancy caption");

详见: errordlg, warndlg, msgbox, inputdlg, listdlg, questdlg.

广告
 
: 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)

从字符串元胞数组中的多文本字段对话框返回用户输入,如果对话框被“取消”按钮关闭,则返回空元胞数组。

输入:

prompt

一个元胞数组,其中包含符号每个文本字段的字符串。此输入是必需的。

广告
title

用于对话框标题的字符串。默认为"Input Dialog".

广告
rowscols

指定文本字段的大小,可以采用三种形式:

  1. 标量值,定义用于每个文本字段的行数。
  2. 定义用于每个文本字段的单个行数的向量。
  3. 一个矩阵,用于定义每个文本字段所使用的行和列的单独数量。在矩阵中,每一行描述一个文本字段。第一列指定要使用的输入行数,第二列指定文本字段宽度。
广告
defaults

要放置在每个文本字段中的默认值列表。它必须是大小与相同的字符串数组prompt.

广告
options

不支持,仅适用于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);

详见: errordlg, helpdlg, listdlg, msgbox, questdlg, warndlg.

广告
 
: [sel, ok] = listdlg (key, value, …)

在选择索引的向量中返回列表对话框中的用户输入(sel)以及指示用户如何关闭对话框的标志(ok).

中的指数sel基于1。

的值ok如果用户用“确定”按钮关闭框,则为1,否则为0sel是空的。

输入参数以的形式指定key, value对。这里的"ListString"自变量对必须指定。

有效的keyvalue对是:

"ListString"

字符串的元胞数组,指定要在对话框中列出的项目。

广告
"SelectionMode"

可以是任意一种"Single"(一次只能选择一个项目)或"Multiple"默认

广告
"ListSize"

二元向量[width, height]以像素为单位指定列表字段的大小。默认值为[160300]。

广告
"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 ("\t%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使用消息对话框。

消息可以有多行,用换行符(“\n”)分隔,也可以是每行有一个元素的cellstr数组。

可选输入title(字符串)可用于装饰对话框标题。

可选参数icon选择对话框图标。它可以是其中之一"none"默认"error", "help","warn""custom"。后者后面必须跟animage数组cdata,以及对于索引图像的相关联的颜色图。

最后一个可选参数opt控制对话框的行为。如果opt是一个字符串,它可能是其中之一

"non-modal" (default)

对话框正常。

广告
"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\nwith 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");

详见: errordlg, helpdlg, inputdlg, listdlg, questdlg, warndlg.

广告
 
: 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使用问题对话框,并返回激活按钮的标题。

消息可以有多行,用换行符(“\n”)分隔,也可以是每行有一个元素的cellstr数组。

可选title(字符串)可用于指定对话框标题。它默认为"Question Dialog".

对话框可能包含两个或三个按钮,这些按钮都将关闭对话框。

字符串default标识默认按钮,该按钮可通过按下ENTER钥匙它必须匹配中给定的字符串之一btn1, btn2btn3.

要是…就好了msgtitle指定了三个带有默认标题的按钮"Yes", "No""Cancel"使用。

如果只有两个按钮字幕,btn1btn2,则对话框将只有这两个按钮。

示例:

btn = questdlg ("Close Octave?", "Some fancy title", ...
                "Yes", "No", "No");
if (strcmp (btn, "Yes"))
  exit ();
endif

详见: errordlg, helpdlg, inputdlg, listdlg, msgbox, warndlg.

广告
 
: warndlg ()
: warndlg (msg)
: warndlg (msg, title)
: warndlg (msg, title, opt)
: h = warndlg (…)

显示带有警告消息的警告对话框msg和标题title.

默认警告消息为"This is the default warning string."默认标题为"Warning Dialog".

警告消息可能有多行用换行符(“\n”)分隔,也可能是一个每行有一个元素的cellstr数组。

第三个可选参数opt控制对话框的行为。有关详细信息,详见msgbox.

返回值h是用于构建对话框的图形对象的句柄。

示例:

warndlg ("Some warning text for the user.");
warndlg ("Some warning text\nwith two lines.");
warndlg ({"Some warning text", "with two lines."});
warndlg ("Some warning text for the user.", "Fancy caption");

详见: errordlg, helpdlg, msgbox, inputdlg, listdlg, questdlg.

广告
 
: uisetfont ()
: uisetfont (h)
: uisetfont (fontstruct)
: uisetfont (…, title)
: fontstruct = uisetfont (…)

打开字体选择对话框。

如果第一个参数是文本、轴或uicontrol对象的句柄,则按下“确定”按钮将更改对象的字体属性。

第一个自变量也可以是一个包含字段的结构体FontName,FontWeight, FontAngle, FontUnitsFontSize,指示最初选择的字体。

可以使用最后一个参数指定对话框窗口的标题title.

如果输出参数fontstruct则返回所选字体结构体。否则,字体信息将显示在屏幕上。

编程注意事项:在本机不使用FontConfig的系统上(除Linux以外的所有系统),字体缓存是在安装Octave时构建的。你需要托伦system ("fc-cache -fv")安装新字体后手动操作。

详见: listfonts, text, axes, uicontrol.

广告

为了创建新的对话框类型,有一个对话框函数。

 
: h = dialog ()
: h = dialog ("property", value, …)

创建一个可以添加其他uicontrol的空模式对话框窗口。

该对话框是一个图形对象对象,其属性建议用于adialog长方体。

与图形不同的默认属性为:

buttondownfcn

if isempty (allchild(gcbf)), close (gcbf), endif

广告
colormap

[]

广告
color

默认uicontrol背景色

广告
dockcontrols

广告
handlevisibility

回调

广告
integerhandle

广告
inverthardcopy

广告
menubar

没有一个

广告
numbertitle

广告
paperpositionmode

汽车

广告
resize

广告
windowstyle

情态动词

广告

可以为对话框对象指定多个属性值对,但它们必须成对出现。完整的属性清单详见图形属性.

返回值h是已创建图形对象的图形句柄。

用例

## create an empty dialog window titled "Dialog Example"
h = dialog ("name", "Dialog Example");

## create a button (default style)
b = uicontrol (h, "string", "OK",
                  "position", [10 10 150 40],
                  "callback", "delete (gcf)");

## wait for dialog to resume or close
uiwait (h);

详见: errordlg, msgbox, questdlg, warndlg, figure, uiwait.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2