35.1 I/O Dialogs

Last-modified: 2025-03-09 (日) 09:29:32

35.1 I/Oダイアログ
ディレクトリまたはファイルを選択するためのシンプルなダイアログ メニューが用意されています。これらは文字列変数を返し、ファイル名を必要とする任意のコマンドで使用できます。

: dirname = uigetdir ()
: dirname = uigetdir (init_path)
: dirname = uigetdir (init_path, dialog_name)
ディレクトリを選択するための GUI ダイアログを開きます。

init_pathが指定されていない場合は、現在の作業ディレクトリが使用されます。

dialog_name はダイアログのタイトルをカスタマイズするために使用できます。

出力dirnameは、選択されたディレクトリの名前の文字列です。ただし、'キャンセル' ボタンがクリックされると、出力は値を持つ double 型になります0。

See also: 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")

単一のファイル拡張子"*.ext"
例:uigetfile ("*.ext")

2列のセル配列
最初の列にファイル拡張子、2 番目の列に簡単な説明が含まれます。例: uigetfile ({"*.ext", "My Description";"*.xyz", "XYZ-Format"})

フィルター文字列には、セミコロンで区切られたフィルター拡張子のリストを含めることもできます。例: uigetfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})

ディレクトリ名またはパス名
パス名のフォルダ名に末尾のファイル区切り文字が含まれている場合、そのフォルダの内容が表示されます。末尾のファイル区切り文字が存在しない場合は、親ディレクトリが一覧表示されます。右端のファイル区切り文字 (存在する場合) の右側の部分文字列は、ファイル名またはディレクトリ名として解釈され、そのファイルまたはディレクトリが存在する場合は強調表示されます。パス名またはディレクトリ名が完全にまたは部分的に存在しない場合は、現在の作業ディレクトリが表示されます。フィルターはアクティブになりません。

dialog_nameを使用してダイアログのタイトルをカスタマイズできます。

default_fileが指定されている場合は、それが GUI ダイアログで選択されます。さらに、パスが指定されている場合は、それが現在のパスとしても使用されます。

"MultiSelect"キーを に設定すると、2 つ以上のファイルを選択できます"on"。その場合、fnameはファイルを含むセル配列になります。

出力fnameとfpathは、それぞれ選択された名前とパスを返す文字列です。ただし、'キャンセル' ボタンがクリックされると、出力は double 型になり、値は になります0。fltidx は、選択された フィルター拡張機能fltのリスト内のインデックスです。

See also: 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"}
1 列目にファイル拡張子、2 列目に簡単な説明が含まれる 2 列のセル配列。例: uiputfile ({"*.ext","My Description";"*.xyz", "XYZ-Format"})

フィルター文字列には、セミコロンで区切られたフィルター拡張子のリストを含めることもできます。例: uiputfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})

dialog_name はダイアログのタイトルをカスタマイズするために使用できます。default_file が指定されている場合は、GUIダイアログで事前に選択されます。さらに、パスが指定されている場合は、現在のパスとしても使用されます。

fnameとfpath はそれぞれ選択された名前とパスを返します。fltidx は選択された フィルター拡張機能fltのリスト内のインデックスです。

uigetfile、uigetdirも参照してください。

さらに、ヘルプ メッセージ、警告、エラーを表示したり、ユーザーからテキスト入力を取得したりするためのダイアログ ボックスもあります。

See also: uigetfile, uigetdir.

さらに、ヘルプ メッセージ、警告、エラーを表示したり、ユーザーからテキスト入力を取得したりするためのダイアログ ボックスもあります。

: errordlg ()
: errordlg (msg)
: errordlg (msg, title)
: errordlg (msg, title, opt)
: h = errordlg (…)
エラー メッセージmsgとキャプション タイトルを含むエラー ダイアログ ボックスを表示します。

デフォルトのエラー メッセージは で"This is the default error string." 、デフォルトのキャプションは です"Error Dialog"。

エラー メッセージは、改行文字 ("\n") で区切られた複数の行で構成される場合や、行ごとに 1 つの要素を持つ cellstr 配列になる場合があります。

3 番目のオプション引数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");
See also: helpdlg, warndlg, msgbox, inputdlg, listdlg, questdlg.

: helpdlg ()
: helpdlg (msg)
: helpdlg (msg, title)
: h = helpdlg (…)
ヘルプ メッセージmsgとキャプション タイトルを含むヘルプ ダイアログ ボックスを表示します。

デフォルトのヘルプ メッセージは で"This is the default help string." 、デフォルトのキャプションは です"Help Dialog"。

ヘルプ メッセージは、改行文字 ("\n") で区切られた複数の行で構成される場合もあれば、行ごとに 1 つの要素を持つ 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");
See also: 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行数列
テキスト フィールドのサイズを指定します。次の 3 つの形式があります。

各テキスト フィールドに使用される行数を定義するスカラー値。
各テキスト フィールドに使用される個別の行数を定義するベクトル。
各テキスト フィールドに使用される行と列の個別の数を定義するマトリックス。マトリックスでは、各行が 1 つのテキスト フィールドを表します。最初の列は使用する入力行の数を指定し、2 番目の列はテキスト フィールドの幅を指定します。
デフォルト
各テキスト フィールドに配置する既定値のリスト。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);

See also: errordlg, helpdlg, listdlg, msgbox, questdlg, warndlg.

: [sel, ok] = listdlg (key, value, …)
リスト ダイアログ ボックスからのユーザー入力を、選択インデックス ( sel )のベクトルと、ユーザーがダイアログ ボックスをどのように閉じたかを示すフラグ ( ok ) で返します。

sel内のインデックスは 1 から始まります。

ユーザーが OK ボタンでボックスを閉じた場合、okの値は1 になります。それ以外の場合は 0 になり、 selは空になります。

入力引数は、キーと値のペアの形式で指定されます。"ListString"引数のペアを指定する必要があります。

有効なキーと値のペアは次のとおりです。

"ListString"
ダイアログにリストする項目を指定する文字列のセル配列。

"SelectionMode"
"Single"(一度に選択できる項目は 1 つだけです) または "Multiple"(デフォルト) のいずれかになります。

"ListSize"
リストフィールドのサイズをピクセル単位で指定する 2要素のベクトル。デフォルトは[160, 300]です。[width, height]

"InitialValue"
リスト ダイアログが最初に表示されるときに事前に選択される要素の 1 から始まるインデックスを含むベクトル。デフォルトは 1 (最初の項目) です。

"Name"
ダイアログのキャプションとして使用される文字列。デフォルトは "" です。

"PromptString"
項目リストの上に表示される文字列のセル配列。デフォルトは {} です。

"OKString"
OK ボタンのラベルとして使用する文字列。デフォルトは です"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

See also: 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") で区切られた複数の行で構成される場合もあれば、行ごとに 1 つの要素を持つ cellstr 配列になる場合もあります。

オプションの入力タイトル(文字列) を使用して、ダイアログのキャプションを装飾できます。

オプションの引数icon はダイアログ アイコンを選択します。"none"(デフォルト)、、、、"error"またはのいずれかになります。後者の後にはイメージ配列cdataが続く必要があり、インデックス付きイメージの場合は関連付けられたカラーマップが続きます "help"。 "warn""custom"

最後のオプション引数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\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");

See also: 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)
質問ダイアログボックスを使用してメッセージを表示し、アクティブ化されたボタンのキャプションを返します。

メッセージは、改行文字 ("\n") で区切られた複数の行で構成される場合もあれば、行ごとに 1 つの要素を持つ cellstr 配列になる場合もあります。

オプションのタイトル(文字列) を使用して、ダイアログのキャプションを指定できます。デフォルトは です"Question Dialog"。

ダイアログには、ダイアログを閉じるためのボタンが 2 つまたは 3 つ含まれている場合があります。

文字列default は、キーを押すことでアクティブになるデフォルト ボタンを識別します。これは、 btn1、btn2、またはbtn3ENTERで指定された文字列のいずれかと一致する必要があります。

msgとtitleのみが指定されている場合は、デフォルトのキャプション 、、 を持つ 3 つのボタン"Yes"が"No"使用"Cancel"されます。

2 つのボタン キャプション( btn1とbtn2 ) のみが指定されている場合、ダイアログにはこれらの 2 つのボタンのみが表示されます。

例:

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

See also: errordlg, helpdlg, inputdlg, listdlg, msgbox, warndlg.

: warndlg ()
: warndlg (msg)
: warndlg (msg, title)
: warndlg (msg, title, opt)
: h = warndlg (…)
警告メッセージmsgとキャプション タイトルを含む警告ダイアログ ボックスを表示します。

デフォルトの警告メッセージは で "This is the default warning string."、デフォルトのキャプションは です "Warning Dialog"。

警告メッセージは、改行文字 ("\n") で区切られた複数の行で構成される場合もあれば、行ごとに 1 つの要素を持つ cellstr 配列で構成される場合もあります。

3 番目のオプション引数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");

See also: errordlg, helpdlg, msgbox, inputdlg, listdlg, questdlg.

: uisetfont ()
: uisetfont (h)
: uisetfont (fontstruct)
: uisetfont (…, title)
: fontstruct = uisetfont (…)
フォント選択ダイアログを開きます。

最初の引数がテキスト、軸、または uicontrol オブジェクトへのハンドルである場合、[OK] ボタンを押すと、オブジェクトのフォント プロパティが変更されます。

最初の引数は、最初に選択されたフォントを示す フィールドFontName、 FontWeight、FontAngle、FontUnits、 を持つ構造体にすることもできます。FontSize

最後の引数titleを使用して、ダイアログ ウィンドウのタイトルを指定できます 。

出力引数fontstructが要求された場合、選択されたフォント構造が返されます。それ以外の場合は、フォント情報が画面に表示されます。

プログラミング ノート: FontConfig をネイティブに使用しないシステム (Linux 以外) では、Octave のインストール時にフォント キャッシュが構築されます。system ("fc-cache -fv")新しいフォントをインストールした後は、手動で実行する必要があります。

See also: listfonts, text, axes, uicontrol.

新しいダイアログ タイプを作成するためのダイアログ機能があります。

: h = dialog ()
: h = dialog ("property", value, …)
他の UI コントロールを追加できる空のモーダル ダイアログ ウィンドウを作成します。

ダイアログ ボックスは、ダイアログ ボックスに推奨されるプロパティを持つ図オブジェクトです。

図と異なるデフォルトのプロパティは次のとおりです。

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

colormap
[]

color
デフォルトのUIコントロール背景色

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);

See also: errordlg, msgbox, questdlg, warndlg, figure, uiwait.