35.1 Диалоговые окна Ввода/Вывода
Доступны простые диалоговые меню для выбора каталогов или файлов. Они возвращают строковую переменную, которую затем можно использовать с любой командой, требующей имя файла.
- : имя_каталога = uigetdir ()
- : имя_каталога = uigetdir (иниц_путь)
- : имя_каталога = uigetdir (иниц_путь, имя_диалога)
-
Открывает диалоговое окно GUI для выбора каталога.
Если иниц_путь не задан, используется текущий рабочий каталог.
имя_диалога может использоваться для настройки заголовка диалогового окна.
Вывод имя_каталога — это строка с именем выбранного каталога. Однако, если нажата кнопка «Отмена», вывод имеет тип double со значением
0.
- : [имя_файла, путь_к_файлу, индекс_фильтра] = uigetfile ()
- : […] = uigetfile (фильтр)
- : […] = uigetfile (фильтр, имя_диалога)
- : […] = uigetfile (фильтр, имя_диалога, файл_по_умолчанию)
- : […] = uigetfile (…, "Position", [px py])
- : […] = uigetfile (…, "MultiSelect", режим)
-
Открывает диалоговое окно GUI для выбора файла и возвращает имя файла имя_файла, путь к этому файлу путь_к_файлу и индекс фильтра индекс_фильтра.
фильтр содержит строку(и) фильтра файлов в одном из следующих форматов:
"/path/to/filename.ext"-
Если имя файла задано, расширение файла извлекается и используется в качестве фильтра. Кроме того, путь выбирается в качестве текущего пути в диалоговом окне, а имя файла — в качестве файла по умолчанию. Пример:
uigetfile ("myfun.m") - Одно расширение файла
"*.ext" -
Пример:
uigetfile ("*.ext") - Массив ячеек из 2 столбцов
-
содержащий расширение файла в первом столбце и краткое описание во втором столбце. Пример:
uigetfile ({"*.ext", "My Description";"*.xyz", "XYZ-Format"})Строка фильтра также может содержать список расширений фильтров, разделенных точкой с запятой. Пример:
uigetfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"}) - Имя каталога или путь
Если имя папки или путь содержат заключительную косую черту, содержимое этой папки будет отображено. Если заключительная косая черта отсутствует, отображается родительская папка. Подстрока справа от последней косой черты (если она есть) интерпретируется как имя файла или папки, и если этот файл или папка существуют, он будет выделен. Если имя пути или имя каталога полностью или частично не существует, будет отображен текущий рабочий каталог. Фильтр не будет активен.
имя_диалога может использоваться для настройки заголовка диалогового окна.
Если задан файл_по_умолчанию, он будет выбран в диалоговом окне GUI. Если дополнительно задан путь, он также используется в качестве текущего пути.
Положение диалогового окна GUI на экране можно установить, используя ключ
"Position"и 2-элементный вектор, содержащий координаты пикселей. Несколько файлов можно выбрать, установив ключ"MultiSelect"в значение"on". В этом случае имя_файла — это массив ячеек, содержащий файлы.Выходные данные имя_файла и путь_к_файлу — это строки, возвращающие выбранное имя и путь соответственно. Однако, если нажата кнопка «Отмена», выходные данные имеют тип double со значением
0. индекс_фильтра — это индекс в списке расширений фильтров фильтр, который был выбран.
- : [имя_файла, путь_к_файлу, индекс_фильтра] = uiputfile ()
- : [имя_файла, путь_к_файлу, индекс_фильтра] = uiputfile (фильтр)
- : [имя_файла, путь_к_файлу, индекс_фильтра] = uiputfile (фильтр, имя_диалога)
- : [имя_файла, путь_к_файлу, индекс_фильтра] = uiputfile (фильтр, имя_диалога, файл_по_умолчанию)
-
Открывает диалоговое окно GUI для выбора файла.
фильтр содержит строку(и) фильтра файлов в одном из следующих форматов:
"/path/to/filename.ext"-
Если имя файла задано, расширение файла извлекается и используется в качестве фильтра. Кроме того, путь выбирается в качестве текущего пути в диалоговом окне, а имя файла — в качестве файла по умолчанию. Пример:
uiputfile ("myfun.m") "*.ext"-
Одно расширение файла. Пример:
uiputfile ("*.ext") {"*.ext", "My Description"}Массив ячеек из 2 столбцов, содержащий расширение файла в первом столбце и краткое описание во втором. Пример:
uiputfile ({"*.ext","My Description";"*.xyz", "XYZ-Format"})
Строка фильтра также может содержать список расширений фильтров, разделенных точкой с запятой. Пример:
uiputfile ({"*.gif;*.png;*.jpg", "Supported Picture Formats"})имя_диалога может использоваться для настройки заголовка диалогового окна. Если файл_по_умолчанию задан, он предварительно выбран в диалоговом окне GUI. Если дополнительно задан путь, он также используется в качестве текущего пути.
имя_файла и путь_к_файлу возвращают выбранное имя и путь соответственно. индекс_фильтра — это индекс в списке расширений фильтров фильтр, который был выбран.
Кроме того, есть диалоговые окна для отображения сообщений справки, предупреждений или ошибок, а также для получения текстового ввода от пользователя.
- : errordlg ()
- : errordlg (сообщение)
- : errordlg (сообщение, заголовок)
- : errordlg (сообщение, заголовок, параметр)
- : h = errordlg (…)
-
Отображает диалоговое окно с ошибкой с сообщением об ошибке сообщение и заголовком заголовок.
По умолчанию сообщение об ошибке —
"This is the default error string.", а заголовок —"Error Dialog".Сообщение об ошибке может иметь несколько строк, разделенных символами новой строки ("\n"), или это может быть массив cellstr с одним элементом для каждой строки.
Третий необязательный аргумент параметр управляет поведением диалогового окна. Подробнее см.
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 (сообщение)
- : helpdlg (сообщение, заголовок)
- : h = helpdlg (…)
-
Отображает диалоговое окно справки с сообщением справки сообщение и заголовком заголовок.
По умолчанию сообщение справки —
"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.
- : строка_текста = inputdlg (подсказка)
- : строка_текста = inputdlg (подсказка, заголовок)
- : строка_текста = inputdlg (подсказка, заголовок, строки_столбцы)
- : строка_текста = inputdlg (подсказка, заголовок, строки_столбцы, значения_по_умолчанию)
- : строка_текста = inputdlg (подсказка, заголовок, строки_столбцы, значения_по_умолчанию, опции)
-
Возвращает ввод пользователя из диалогового окна с несколькими текстовыми полями в виде массива ячеек строк или пустого массива ячеек, если диалоговое окно закрыто кнопкой «Отмена».
Входы:
- подсказка
-
Массив ячеек со строками, маркирующими каждое текстовое поле. Этот вход обязателен.
- заголовок
-
Строка, используемая для заголовка диалогового окна. По умолчанию
"Input Dialog". - строки_столбцы
-
Указывает размер текстовых полей и может принимать три формы:
- скалярное значение, определяющее количество строк, используемых для каждого текстового поля.
- вектор, определяющий количество строк, используемых для каждого текстового поля.
- матрица, определяющая количество строк и столбцов, используемых для каждого текстового поля. В матрице каждая строка описывает одно текстовое поле. Первый столбец указывает количество строк для ввода, а второй — ширину текстового поля.
- значения_по_умолчанию
-
Список значений по умолчанию для размещения в каждом текстовом поле. Это должен быть массив ячеек строк с тем же размером, что и подсказка.
- опции
Не поддерживается, только для совместимости с 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-основанные индексы элементов, которые будут предварительно выбраны при первом отображении диалогового окна списка. По умолчанию 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 (…)
-
Открывает диалоговое окно выбора шрифта.
Если первый аргумент — это дескриптор объекта текста, осей или элемента управления, нажатие кнопки «ОК» изменит свойства шрифта объекта.
Первый аргумент также может быть структурой с полями
FontName,FontWeight,FontAngle,FontUnits, иFontSize, указывающими начальный выбранный шрифт.Заголовок диалогового окна можно изменить, используя последний аргумент title.
Если запрашивается выходной аргумент fontstruct, возвращается выбранная структура шрифта. В противном случае информация о шрифте отображается на экране.
Для создания новых типов диалоговых окон существует функция диалогового окна.
- : h = dialog ()
- : h = dialog ("property", value, …)
-
Создать пустое модальное диалоговое окно, в которое можно добавить другие элементы управления.
Диалоговое окно — это объект 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/v6.4.0/I_002fO-Dialogs.html