35.3 Элементы пользовательского интерфейса ¶
Функции серии ui* наилучшим образом работают с графическим набором инструментов qt, хотя некоторые функции доступны и с набором инструментов fltk. Поддержка набора инструментов gnuplot отсутствует.
-
:
h =uifigure()¶ -
:
h =uifigure("property", value, …)¶ -
Создаёт новое окно фигуры для приложений.
Для объекта фигуры могут быть заданы несколько пар свойство-значение, но они должны быть указаны парами.
Значение возврата h — это графическая ссылка на созданный объект фигуры.
Примечание по программированию: Полный список свойств описан в разделе Свойства фигуры. Эта функция отличается от
figureтем, что созданная фигура оптимизирована для разработки приложений, а не для построения графиков. Это означает, что такие функции, как строка меню и панель инструментов, отключены.См. также: uipanel, uibuttongroup.
-
:
hui =uipanel()¶ -
:
hui =uipanel(property, value, …)¶ -
:
hui =uipanel(parent)¶ -
:
hui =uipanel(parent, property, value, …)¶ -
Создаёт объект uipanel.
uipanels используются в качестве контейнеров для группирования других объектов uicontrol.
Если parent опущено, то создаётся uipanel для текущей фигуры. Если фигура недоступна, то сначала создаётся новая фигура.
Если parent указано, то создаётся uipanel относительно parent.
Все предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uipanel.
Полный список свойств описан в разделе Свойства uipanel.
Необязательное значение возврата hui — это графическая ссылка на созданный объект uipanel.
Примеры:
## create figure and panel on it f = figure; p = uipanel ("title", "Panel Title", "position", [.25 .25 .5 .5]); ## add two buttons to the panel b1 = uicontrol ("parent", p, "string", "A Button", ... "position", [18 10 150 36]); b2 = uicontrol ("parent", p, "string", "Another Button", ... "position",[18 60 150 36]);
-
:
hui =uibuttongroup()¶ -
:
hui =uibuttongroup(property, value, …)¶ -
:
hui =uibuttongroup(parent)¶ -
:
hui =uibuttongroup(parent, property, value, …)¶ -
: uibuttongroup
(h)¶ -
Создаёт объект uibuttongroup и возвращает ссылку на него.
uibuttongroup используется для группирования объектов uicontrol.
Если parent опущено, то создаётся uibuttongroup для текущей фигуры. Если фигура недоступна, то сначала создаётся новая фигура.
Если parent указано, то создаётся uibuttongroup относительно parent.
Все предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uibuttongroup.
Полный список свойств описан в разделе Свойства uibuttongroup.
Примеры:
## Create figure and panel on it f = figure; ## Create a button group gp = uibuttongroup (f, "Position", [ 0 0.5 1 1]) ## Create a buttons in the group b1 = uicontrol (gp, "style", "radiobutton", ... "string", "Choice 1", ... "Position", [ 10 150 100 50 ]); b2 = uicontrol (gp, "style", "radiobutton", ... "string", "Choice 2", ... "Position", [ 10 50 100 30 ]); ## Create a button not in the group b3 = uicontrol (f, "style", "radiobutton", ... "string", "Not in the group", ... "Position", [ 10 50 100 50 ]);При вызове с одним аргументом h, который является ссылкой на существующий объект uibuttongroup, фокус переключается на указанный uibuttongroup. Эта функция в настоящее время не реализована.
-
:
hui =uicontrol()¶ -
:
hui =uicontrol(property, value, …)¶ -
:
hui =uicontrol(parent)¶ -
:
hui =uicontrol(parent, property, value, …)¶ -
: uicontrol
(h)¶ -
Создаёт объект uicontrol и возвращает ссылку на него.
Объект uicontrol используется для создания простых интерактивных элементов управления, таких как кнопки, флажки, поля ввода и списки.
Если parent опущено, то создаётся uicontrol для текущей фигуры. Если фигура недоступна, то сначала создаётся новая фигура.
Если parent указано, то создаётся uicontrol относительно parent.
Все предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uicontrol.
Полный список свойств описан в разделе Свойства uicontrol.
Тип создаваемого uicontrol определяется свойством style. Если свойство style не задано, будет создана кнопка.
Допустимые стили для uicontrol:
"checkbox"-
Создаёт флажок, позволяющий пользователю выполнять выбор включения/выключения.
"edit"-
Создаёт поле ввода, позволяющее пользователю вводить одно или несколько строк текста.
"listbox"-
Создаёт список элементов, отображающий список элементов и позволяющий пользователю выбирать один или несколько элементов.
"popupmenu"-
Создаёт выпадающее меню, отображающее список вариантов, которые пользователь может выбрать, щелкнув по элементу управления.
"pushbutton"-
Создаёт кнопку, позволяющую пользователю нажать, чтобы вызвать действие.
"radiobutton"-
Создаёт переключатель, предназначенный для использования для взаимоисключающего ввода в группе переключателей.
"slider"-
Создаёт ползунок, позволяющий пользователю выбирать значения из диапазона, перемещая ползунок по элементу управления.
"text"-
Создаёт элемент статического текста для отображения одной или нескольких строк текста.
"togglebutton"-
Создаёт переключатель, который выглядит как кнопка, но позволяет пользователю выбирать между двумя состояниями.
Примечание: Для стилей
"edit"и"listbox"поведение выбора одной или нескольких строк/выбор определяется свойствами"Min"и"Max", позволяя выбирать несколько строк/элементов, когда значения установлены таким образом, чтоMax - Min > 1.Примеры:
## Create figure and panel on it f = figure; ## Create a button (default style) b1 = uicontrol (f, "string", "A Button", ... "position", [10 10 150 40]); ## Create an edit control e1 = uicontrol (f, "style", "edit", "string", "editable text", ... "position", [10 60 300 40]); ## Create a checkbox c1 = uicontrol (f, "style", "checkbox", "string", "a checkbox", ... "position", [10 120 150 40]);При вызове с одним аргументом h, который является ссылкой на существующий объект uicontrol, фокус клавиатуры переключается на указанный uicontrol. В результате объект uicontrol будет получать события клавиатуры, которые могут быть обработаны с помощью обратного вызова
"keypressfcn".
-
:
hui =uitable(property, value, …)¶ -
:
hui =uitable(parent, property, value, …)¶ -
Создайте объект uitable и верните дескриптор (handle) к нему.
Объект uitable используется для отображения таблиц данных в окне figure.
Если parent опущено, то создаётся uitable для текущего окна figure. Если окно figure отсутствует, то сначала создаётся новое окно figure.
Если parent задано, то создаётся uitable, относящийся к элементу parent.
Любые заданные пары "свойство-значение" переопределят значения по умолчанию созданного объекта uitable.
Полный список свойств описан в разделе Свойства uitable.
Примеры:
## Create figure and place a table on it f = figure (); m = magic (8); t = uitable (f, "Data", m, "ColumnWidth", { 40 }); ## Create a table with labeled rows and columns f = figure (); d = reshape (1:9, [3, 3]); row_names = { "Row1", "Row2", "Row3" }; col_names = { "Col1", "Col2", "Col3" }; t = uitable (f, "Data", d, ... "RowName", row_names, "ColumnName", col_names); p = get (t, "Position"); e = get (t, "Extent"); p(3:4) = e(3:4); set (t, "Position", p); ## Long demo with callbacks function uitable_demo () f = figure ("Name", "uitable Demo", "Menu", "none", ... "Position", [10 10 1000 680]); ## A basic example d = { "char" , "A string"; "double" , 12.3456789; "complex", 1+2i; "bool" , true; "single" , single(12.3456789); "int8" , int8(-128); "uint8" , uint8(128); "int16" , int16(-32768); "uint16" , uint16(32768); "int32" , int32(-2147483648); "uint32" , uint32(2147483648); "int64" , int64(-2147483649); "uint64" , uint64(2147843649)}; popup_options = {"A", "B", "C", "D", "E"}; columnformat_options = { "[]", "char", "pop-up", "numeric", ... "short", "short e", "short eng", ... "short g", "long", "long e", ... "long eng", "long g", "bank", "+", ... "rat", "logical"}; columnformat_values = columnformat_options; columnformat_values{1} = ""; columnformat_values{3} = popup_options; default_data = repmat (d(:,2), 1, columns (columnformat_options)); b_add = uicontrol (f, "Position", [285 630 600 50], ... "UserData", [rows(d), 1], ... "Style", "pushbutton", ... "String", "Set data at selected point to selected datatype"); l_type_table = uicontrol (f, "Position", [ 0 603 120 25 ], ... "String", "Datatype Table:", ... "Style", "text"); t_type_table = uitable (f, "Position", [ 0 530 1000 70 ], ... "Data", transpose (d(:, 2)), ... "ColumnName", transpose (d(:, 1)), ... "RowName", "Value", ... "CellSelectionCallback", ... @(x, y) set (b_add, "UserData", y.Indices )); l_point_table = uicontrol (f, "Position", [ 0 640 60 25 ], ... "String", "Point:", ... "Style", "text"); t_point_table = uitable (f, "Position", [ 80 630 160 42 ], ... "RowName", [], ... "ColumnName", {"x", "y"}, ... "Data", [ 1, 1 ], ... "ColumnEditable", true); l_editable_table = uicontrol (f, "Position", [ 0 502 200 25 ], ... "Style", "text", ... "String", "Set Data Columns Editable:"); t_editable_table = ... uitable (f, "Position", [ 0 434 1000 65 ], ... "Data", repmat (false, 1, columns (default_data)), ... "ColumnEditable", true); l_format_table = uicontrol (f, "Position", [ 0 406 200 25 ], ... "Style", "text", ... "String", "Set Data Column Format:"); t_format_table = ... uitable (f, "Position", [ 0 338 1000 65 ], ... "Data", columnformat_options, ... "ColumnEditable", true, ... "ColumnFormat", arrayfun (@(x) {columnformat_options}, ... 1:columns (columnformat_options))); l_data_table = uicontrol (f, "Style", "text", ... "String", "Data:", ... "Position", [ 0 310 60 25 ]); t_data_table = uitable (f, "Position", [ 0 15 1000 290 ], ... "Data", default_data, ... "ColumnFormat", columnformat_values); set (t_format_table, ... "CellEditCallback", ... @(x, y) update_column_format (y.NewData, y.Indices, ... t_data_table, popup_options)); set (t_point_table, "CellEditCallback", ... @(x, y) validate_point_table (x, y, t_data_table)); set (t_editable_table, "CellEditCallback", ... @(x,y) set (t_data_table, ... "ColumnEditable", get (t_editable_table, "Data"))); set (b_add, ... "Callback", @(x, y) update_data (b_add, t_point_table, ... t_type_table, t_data_table)); set (t_data_table, "CellSelectionCallback", ... @(x, y) update_point_table (y.Indices, t_point_table)); endfunction function validate_point_table (h, dat, t_data_table) if (! (dat.NewData > 0 && ... dat.NewData < size (get (t_data_table, "Data"), dat.Indices(1, 1)) + 1)) d = get (h, "Data"); d(dat.Indices) = 1; set (h, "Data", d); endif endfunction function update_column_format (format, indices, t_data_table, ... popup_options) cf = get (t_data_table, "ColumnFormat"); if (strcmp (format, "[]")) format = ""; elseif (strcmp (format, "pop-up")) format = popup_options; endif cf{indices(1,2)} = format; set (t_data_table, "ColumnFormat", cf); endfunction function update_point_table (indices, t_point_table) if (isempty (indices)) indices = [1, 1]; endif set (t_point_table, "Data", indices(1,:)); endfunction function update_data (b_add, t_point_table, t_type_table, ... t_data_table) indices = get (b_add, "UserData"); if (isempty (indices)) indices = [1, 1]; endif d = get (t_data_table, "Data"); t_type_table_data = get (t_type_table, "Data"); p = get (t_point_table, "Data"); d(p(1,2), p(1,1)) = t_type_table_data(indices(1,2)); set (t_data_table, "Data", d); endfunction
-
Создайте объект uimenu и верните дескриптор (handle) к нему.
Если h опущено, то создаётся верхнеуровневое меню для текущего окна figure. Если h задано, то создаётся подменю, относящееся к элементу h.
Объекты uimenu имеют следующие специфические свойства:
"accelerator"-
Строка, содержащая комбинацию клавиш (например, CTRL), для выполнения этой записи меню (например,
"x"для CTRL+x). "checked"-
Может быть установлено
"on"или"off". Устанавливает метку в этой записи меню. "enable"-
Может быть установлено
"on"или"off". Если отключено, то запись меню нельзя выбрать, и она становится серым цветом. "foregroundcolor"-
Значение цвета текста записи меню.
"menuselectedfcn"-
Функция, вызываемая при выполнении этой записи меню. Она может быть строкой функции (например,
"myfcn"), обработчиком функции (например, @myfcn) или массивом ячеек, содержащим обработчик функции и аргументы для функции обратного вызова (например, {@myfcn, arg1, arg2}). "position"-
Скалярное значение, содержащее относительную позицию меню. Первая позиция имеет значение 1 и будет либо слева, либо сверху, в зависимости от ориентации uimenu.
"separator"-
Может быть установлено
"on"или"off". Если включено, то над текущей позицией рисуется разделительная линия. Это свойство игнорируется для записей верхнего уровня. "text"-
Строка, содержащая текст для этой записи меню. Символ
"&"может использоваться для обозначения символа"accelerator"(например,"E&xit").
Полный список свойств описан в разделе Свойства uimenu.
Примеры:
f = uimenu ("text", "&File", "accelerator", "f"); e = uimenu ("text", "&Edit", "accelerator", "e"); uimenu (f, "text", "Close", "accelerator", "q", ... "menuselectedfcn", "close (gcf)"); uimenu (e, "text", "Toggle &Grid", "accelerator", "g", ... "menuselectedfcn", "grid (gca)");См. также: figure.
-
Создайте объект uicontextmenu и верните дескриптор (handle) к нему.
Если h опущено, то создаётся uicontextmenu для текущего окна figure. Если окно figure отсутствует, то сначала создаётся новое окно figure.
Если h задано, то создаётся uicontextmenu, относящийся к элементу h.
Любые заданные пары "свойство-значение" переопределят значения по умолчанию созданного объекта uicontextmenu.
Полный список свойств описан в разделе Свойства uicontextmenu.
Примеры:
## create figure and uicontextmenu f = figure (); c = uicontextmenu (f); ## create menus in the context menu m1 = uimenu ("parent", c, "label", "Menu item 1", ... "callback", "disp('menu item 1')"); m2 = uimenu ("parent", c, "label", "Menu item 2", ... "callback", "disp('menu item 2')"); ## set the context menu for the figure set (f, "uicontextmenu", c);
-
:
hui =uitoolbar()¶ -
:
hui =uitoolbar(property, value, …)¶ -
:
hui =uitoolbar(parent)¶ -
:
hui =uitoolbar(parent, property, value, …)¶ -
Создайте объект uitoolbar. Объект uitoolbar отображает кнопки uitoggletool и uipushtool.
Если parent опущено, то создаётся uitoolbar для текущего окна figure. Если окно figure отсутствует, то сначала создаётся новое окно figure.
Если parent задано, то создаётся uitoolbar, относящийся к элементу parent.
Любые заданные пары "свойство-значение" переопределят значения по умолчанию созданного объекта uitoolbar.
Дополнительное возвращаемое значение hui — дескриптор созданного объекта uitoolbar.
Примеры:
% create figure without a default toolbar f = figure ("toolbar", "none"); % create empty toolbar t = uitoolbar (f);См. также: figure, uitoggletool, uipushtool.
-
:
hui =uipushtool()¶ -
:
hui =uipushtool(property, value, …)¶ -
:
hui =uipushtool(parent)¶ -
:
hui =uipushtool(parent, property, value, …)¶ -
Создайте объект uipushtool.
uipushtool — это кнопки, которые появляются на панели инструментов окна figure. Кнопка создаётся с рамкой, которая отображается, когда пользователь наводит указатель мыши на кнопку. Изображение можно задать с помощью свойства cdata.
Если parent опущено, то создаётся uipushtool для текущего окна figure. Если окно figure отсутствует, то сначала создаётся новое окно figure. Если окно figure доступно, но не содержит панели инструментов uitoolbar, то будет создана панель инструментов uitoolbar.
Если parent задано, то uipushtool создаётся на панели инструментов parent uitoolbar.
Любые заданные пары "свойство-значение" переопределят значения по умолчанию созданного объекта uipushtool.
Дополнительное возвращаемое значение hui — дескриптор созданного объекта uipushtool.
Примеры:
% create figure without a default toolbar f = figure ("toolbar", "none"); % create empty toolbar t = uitoolbar (f); % create a 19x19x3 black square img=zeros(19,19,3); % add pushtool button to toolbar b = uipushtool (t, "cdata", img);См. также: figure, uitoolbar, uitoggletool.
-
:
hui =uitoggletool()¶ -
:
hui =uitoggletool(property, value, …)¶ -
:
hui =uitoggletool(parent)¶ -
:
hui =uitoggletool(parent, property, value, …)¶ -
Создайте объект uitoggletool.
uitoggletool — это переключатели, которые отображаются на панели инструментов Figure. Кнопка создаётся с рамкой, которая отображается, когда пользователь наводит указатель на кнопку. Изображение можно задать с помощью свойства cdata.
Если parent опущено, то создаётся uitoggletool для текущей фигуры. Если фигура недоступна, сначала создаётся новая фигура. Если фигура доступна, но не содержит панель инструментов uitoolbar, то будет создана панель uitoolbar.
Если parent задано, то uitoggletool создаётся на панели инструментов parent uitoolbar.
Любые заданные пары свойств и значений переопределят значения по умолчанию созданного объекта uitoggletool.
Полный список свойств описан в разделе Свойства Uitoggletool.
Необязательное возвращаемое значение hui — это графический дескриптор созданного объекта uitoggletool.
Примеры:
% create figure without a default toolbar f = figure ("toolbar", "none"); % create empty toolbar t = uitoolbar (f); % create a 19x19x3 black square img=zeros(19,19,3); % add uitoggletool button to toolbar b = uitoggletool (t, "cdata", img);См. также: figure, uitoolbar, uipushtool.
© 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/UI-Elements.html