Spec-Zone.ru › Octave 5

35.1 Диалоговые окна ввода-вывода

Доступны простые диалоговые меню для выбора каталогов или файлов. Они возвращают строковую переменную, которую затем можно использовать с любой командой, требующей имя файла.

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

Открывает диалоговое окно для выбора каталога.

Если init_path не указан, используется текущий рабочий каталог.

dialog_name может использоваться для настройки заголовка диалогового окна.

См. также: uigetfile, uiputfile.

[fname, fpath, fltidx] = uigetfile ()
[…] = uigetfile (flt)
[…] = uigetfile (flt, dialog_name)
[…] = uigetfile (flt, dialog_name, default_file)
[…] = uigetfile (…, "Position", [px py])
[…] = 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, он будет выбран в диалоговом окне. Если, кроме того, задан путь, он также используется в качестве текущего пути.

Положение диалогового окна на экране можно установить с помощью ключа "Position" и 2-элементного вектора, содержащего координаты пикселей. Два или более файла можно выбрать, установив ключ "MultiSelect" в значение "on". В этом случае fname является массивом ячеек, содержащим файлы.

См. также: 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)

Открывает диалоговое окно для выбора файла.

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, он будет предварительно выбран в диалоговом окне. Если, кроме того, задан путь, он также используется в качестве текущего пути.

См. также: 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 — это дескриптор объекта figure, используемого для создания диалогового окна.

Примеры:

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

Указывает размер текстовых полей и может принимать три формы:

  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, если пользователь закрыл окно с помощью кнопки «ОК», в противном случае — 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.

Для создания новых типов диалоговых окон используется функция 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

Для объекта диалогового окна могут быть заданы несколько пар свойство-значение, но они должны задаваться парами.

Возвращаемое значение 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/v5.2.0/I_002fO-Dialogs.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API