35.1 Диалоговые окна Ввода/Вывода ¶
Доступны простые диалоговые меню для выбора каталогов или файлов. Они возвращают строковую переменную, которую можно использовать с любой командой, требующей имя файла.
-
:
dirname =uigetdir()¶ -
:
dirname =uigetdir(init_path)¶ -
:
dirname =uigetdir(init_path, dialog_name)¶ -
Открыть диалоговое окно графического интерфейса для выбора каталога.
Если init_path не указан, используется текущий рабочий каталог.
dialog_name может использоваться для настройки заголовка диалогового окна.
Вывод dirname — это строка символов с именем выбранного каталога. Однако, если нажата кнопка «Отмена», вывод имеет тип double со значением
0.
-
:
[fname, fpath, fltidx] =uigetfile()¶ -
:
[…] =uigetfile(flt)¶ -
:
[…] =uigetfile(flt, dialog_name)¶ -
:
[…] =uigetfile(flt, dialog_name, default_file)¶ -
:
[…] =uigetfile(…, "MultiSelect", mode)¶ -
Открыть диалоговое окно графического интерфейса для выбора файла и вернуть имя файла fname, путь к этому файлу fpath и индекс фильтра fltidx.
flt содержит строку(и) фильтра файла(ов) в одном из следующих форматов:
"/path/to/filename.ext"-
Если имя файла задано, то расширение файла извлекается и используется в качестве фильтра. Кроме того, путь выбирается в качестве текущего пути в диалоговом окне, а имя файла выбирается в качестве файла по умолчанию. Пример:
uigetfile ("myfcn.m") - Одно расширение файла
"*.ext" -
Пример:
uigetfile ("*.ext") - Массив ячеек 2 столбца
-
содержащий расширение файла в первом столбце и краткое описание во втором. Пример:
uigetfile ({"*.ext", "My Description";"*.xyz", "XYZ-Format"})Строка фильтра также может содержать список расширений фильтров, разделенных точкой с запятой. Пример:
uigetfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"}) - Имя каталога или имя пути
Если имя папки или имя пути содержит заключительную разделитель папки, содержимое этой папки будет отображено. Если заключительного разделителя папки нет, отображается родительский каталог. Подстрока справа от самого правого разделителя файлов (если есть) будет интерпретироваться как имя файла или папки и, если этот файл или папка существуют, он будет выделен. Если имя пути или имя папки полностью или частично не существуют, отображается текущий рабочий каталог. Фильтр не будет активен.
dialog_name может использоваться для настройки заголовка диалогового окна.
Если default_file задано, оно будет выбрано в диалоговом окне графического интерфейса. Если, кроме того, указан путь, он также используется в качестве текущего пути.
Два или более файлов могут быть выбраны при установке ключа
"MultiSelect"в значение"on". В этом случае, fname является массивом ячеек, содержащим файлы.Выходы fname и fpath — это строки, возвращающие выбранное имя и путь соответственно. Однако, если нажата кнопка «Отмена», выходы имеют тип 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)¶ -
Открыть диалоговое окно графического интерфейса для выбора файла.
flt содержит строку(и) фильтра файла(ов) в одном из следующих форматах:
"/path/to/filename.ext"-
Если имя файла задано, то расширение файла извлекается и используется в качестве фильтра. Кроме того, путь выбирается в качестве текущего пути в диалоговом окне, а имя файла выбирается в качестве файла по умолчанию. Пример:
uiputfile ("myfcn.m") "*.ext"-
Одно расширение файла. Пример:
uiputfile ("*.ext") {"*.ext", "My Description"}Массив ячеек 2 столбца, содержащий расширение файла в первом столбце и краткое описание во втором. Пример:
uiputfile ({"*.ext","My Description";"*.xyz", "XYZ-Format"})
Строка фильтра также может содержать список расширений фильтров, разделенных точкой с запятой. Пример:
uiputfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})dialog_name может использоваться для настройки заголовка диалогового окна. Если default_file задано, оно предварительно выбрано в диалоговом окне графического интерфейса. Если, кроме того, указан путь, он также используется в качестве текущего пути.
fname и fpath возвращают выбранное имя и путь соответственно. fltidx — это индекс в списке расширений фильтров flt, который был выбран.
Дополнительно, существуют диалоговые окна для отображения сообщений справки, предупреждений или ошибок, а также для получения текстового ввода от пользователя.
-
: 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 — дескриптор объекта figure, используемого для создания диалога.
Примеры:
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
-
Указывает размер текстовых полей и может принимать три формы:
- скалярное значение, определяющее количество строк, используемых для каждого текстового поля;
- вектор, определяющий количество строк для каждого текстового поля;
- матрица, определяющая количество строк и столбцов для каждого текстового поля. В матрице каждая строка описывает одно текстовое поле. Первый столбец определяет количество строк ввода, а второй столбец — ширину текстового поля.
- 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, если пользователь закрыл окно кнопкой «ОК», иначе равно 0, а sel пусто.
Аргументы ввода задаются в виде пар «ключ», «значение». Пара
"ListString"аргумента должна быть указана.Допустимые пары «ключ», «значение»:
"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 ("\t%s", my_options{sel(i)})); endfor else disp ("You cancelled."); endifСм. также: menu, errordlg, helpdlg, inputdlg, msgbox, 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, btn2 или btn3.
Если указаны только msg и title, используются три кнопки с заголовками по умолчанию
"Yes","No", и"Cancel".Если указаны только две подписи кнопок, btn1 и btn2, в диалоговом окне будут только эти две кнопки.
Примеры:
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 — это дескриптор объекта figure, используемого для создания диалогового окна.
Примеры:
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(…)¶ -
Открыть диалоговое окно выбора шрифта.
Если первый аргумент — это дескриптор объекта text, axes или uicontrol, нажатие кнопки OK изменит свойства шрифта объекта.
Первый аргумент также может быть структурой со полями
FontName,FontWeight,FontAngle,FontUnits, иFontSize, указывающими начальный выбранный шрифт.Заголовок диалогового окна может быть указан с помощью последнего аргумента title.
Если запрашивается выходной аргумент fontstruct, возвращается выбранная структура шрифта. В противном случае информация о шрифте отображается на экране.
Примечание для программирования: На системах, которые не используют FontConfig напрямую (все, кроме Linux), кэш шрифтов создаётся при установке Octave. После установки новых шрифтов необходимо вручную запустить
system ("fc-cache -fv").
Для создания новых типов диалоговых окон есть функция диалога.
-
:
h =dialog()¶ -
:
h =dialog("property", value, …)¶ -
Создать пустое модальное диалоговое окно, к которому можно добавить другие элементы uicontrol.
Диалоговое окно — это объект figure с рекомендуемыми свойствами для диалогового окна.
Свойства, отличающиеся от figure:
- buttondownfcn
-
if isempty (allchild(gcbf)), close (gcbf), endif - colormap
-
[]
- color
-
defaultuicontrolbackgroundcolor
- dockcontrols
-
off
- handlevisibility
-
callback
- integerhandle
-
off
- inverthardcopy
-
off
- menubar
-
none
- numbertitle
-
off
- paperpositionmode
-
auto
- resize
-
off
- windowstyle
-
modal
Для объекта диалогового окна могут быть указаны несколько пар свойство-значение, но они должны быть представлены парами. Полный список свойств описан в Свойства figure.
Возвращаемое значение h — это дескриптор объекта figure, созданного figure.
Пример:
## 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.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/I_002fO-Dialogs.html