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 ("myfun.m") - Одно расширение файла
"*.ext" -
Пример:
uigetfile ("*.ext") - Двухстолбцовый массив ячеек
-
содержащий расширение файла в первом столбце и краткое описание во втором столбце. Пример:
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 ("myfun.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 задан, он предварительно выбран в диалоговом окне графического интерфейса пользователя. Если при этом указан путь, он также используется в качестве текущего пути.
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 — это дескриптор объекта фигуры, используемого для построения диалогового окна.
Примеры:
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 пуст.
Аргументы ввода задаются в виде пар key, value. Пара
"ListString"аргумента обязательна.Допустимые пары key и value:
"ListString"-
ячейный массив строк, определяющий элементы для отображения в диалоговом окне.
"SelectionMode"-
может быть либо
"Single"(одновременно может быть выбран только один элемент), либо"Multiple"(по умолчанию). "ListSize"-
двухэлементный вектор
[width, height], определяющий размер поля списка в пикселях. По умолчанию [160, 300]. "InitialValue"-
вектор, содержащий индексы элементов, которые будут предварительно выбраны при первом отображении диалогового окна списка. По умолчанию 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". Последний должен быть после изображения массива cdata, и для индексированных изображений — соответствующая цветовая карта.Последний необязательный аргумент opt управляет поведением диалогового окна. Если opt строка, она может быть одной из
"non-modal"(по умолчанию)-
Диалоговое окно обычное.
"modal"-
Если диалоговые окна с тем же заголовком уже существуют, используется последнее, а все остальные закрываются. Диалоговое окно отображается
"modal", что означает, что пользователи не могут взаимодействовать ни с одним другим элементом графического интерфейса пользователя, пока диалоговое окно не будет закрыто. "replace"Если диалоговые окна с тем же заголовком уже существуют, используется последнее, а все остальные закрываются. Результирующее диалоговое окно установлено
"non-modal".
Если opt структура, она должна содержать поля
"WindowStyle"и"Interpreter":"WindowStyle"-
Значение должно быть
"non-modal","modal", или"replace". См. выше. "Interpreter"Управляет свойством
"interpreter"объекта текста, используемого для отображения сообщения. Значение должно быть"tex"(по умолчанию),"none", или"latex".
Возвращаемое значение h — это дескриптор объекта figure, используемого для построения диалогового окна.
Примеры:
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, 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, нажатие кнопки ОК изменит свойства шрифта объекта.
Первый аргумент также может быть структурой со полями
FontName,FontWeight,FontAngle,FontUnits, иFontSize, указывающими начальный выбранный шрифт.Заголовок диалогового окна можно задать, используя последний аргумент title.
Если запрошен выходной аргумент fontstruct, возвращается выбранная структура шрифта. В противном случае информация о шрифте отображается на экране.
Примечание программиста: в системах, которые не используют FontConfig напрямую (кроме Linux), кэш шрифтов создаётся при установке Octave. Вам потребуется вручную выполнить
system ("fc-cache -fv")после установки новых шрифтов.
Для создания новых типов диалоговых окон используется функция dialog.
- : 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.
Пример:
## 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–2022 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/v7.2.0/I_002fO-Dialogs.html