35.3 Элементы пользовательского интерфейса
Функции из серии ui* лучше всего работают с графической библиотекой qt, хотя некоторые возможности доступны и с библиотекой fltk. Поддержка библиотеки gnuplot отсутствует.
- : uipanel (property, value, …) ¶
- : uipanel (parent, property, value, …) ¶
- : hui = uipanel (…) ¶
-
Создаёт объект uipanel.
Объекты uipanel используются в качестве контейнеров для группировки других объектов 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]);
-
Создаёт объект 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 (property, value, …) ¶
- : 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"-
Создаёт элемент переключателя, выглядящий как кнопка, но позволяющий пользователю выбирать между двумя состояниями.
Примеры:
## 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 и возвращает его дескриптор.
Объект uitable используется для отображения таблиц данных в окне фигуры.
Если parent опущено, то uitable создаётся для текущей фигуры. Если фигура недоступна, сначала создаётся новая фигура.
Если 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 и возвращает его дескриптор.
Если h опущено, то создаётся верхнеуровневое меню для текущей фигуры. Если h указано, то создаётся подменю относительно h.
Объекты uimenu имеют следующие специфические свойства:
"accelerator"-
Строка, содержащая комбинацию клавиш вместе с CTRL для выполнения этого пункта меню (например,
"x"для CTRL+x). "callback"-
Функция, вызываемая при выполнении этого пункта меню. Это может быть строка имени функции (например,
"myfun"), указатель на функцию (например, @myfun) или массив ячеек, содержащий указатель на функцию и аргументы для функции-обработчика (например, {@myfun, arg1, arg2}). "checked"-
Может быть установлено в
"on"или"off". Устанавливает метку на этом пункте меню. "enable"-
Может быть установлено в
"on"или"off". При отключении пункт меню не может быть выбран и становится серым. "foregroundcolor"-
Значение цвета, устанавливающее цвет текста для этого пункта меню.
"label"-
Строка, содержащая метку для этого пункта меню. Символ
"&"может использоваться для обозначения символа"accelerator"(например,"E&xit") "position"-
Скалярное значение, содержащее относительное положение меню. Пункт с наименьшим значением находится на первой позиции, начиная слева или сверху.
"separator"-
Может быть установлено в
"on"или"off". При включении рисует разделительную линию над текущей позицией. Игнорируется для верхнеуровневых пунктов.
Полный список свойств описан в разделе Свойства uimenu.
Примеры:
f = uimenu ("label", "&File", "accelerator", "f"); e = uimenu ("label", "&Edit", "accelerator", "e"); uimenu (f, "label", "Close", "accelerator", "q", ... "callback", "close (gcf)"); uimenu (e, "label", "Toggle &Grid", "accelerator", "g", ... "callback", "grid (gca)");См. также: figure.
-
Создать объект uicontextmenu и вернуть дескриптор к нему.
Если h опущено, то создается uicontextmenu для текущей фигуры. Если фигура недоступна, сначала создается новая фигура.
Если 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);
- : uitoolbar (property, value, …) ¶
- : uitoolbar (parent, property, value, …) ¶
- : hui = uitoolbar (…) ¶
-
Создать объект uitoolbar. Объект uitoolbar отображает кнопки uitoggletool и uipushtool.
Если parent опущено, то создается uitoolbar для текущей фигуры. Если фигура недоступна, сначала создается новая фигура.
Если parent задано, то создается uitoolbar, относящийся к parent.
Все предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uitoolbar.
Полный список свойств описан в Свойства uitoolbar.
Необязательное возвращаемое значение hui — графический дескриптор созданного объекта uitoolbar.
Примеры:
% create figure without a default toolbar f = figure ("toolbar", "none"); % create empty toolbar t = uitoolbar (f);См. также: figure, uitoggletool, uipushtool.
- : uipushtool (property, value, …) ¶
- : uipushtool (parent, property, value, …) ¶
- : hui = uipushtool (…) ¶
-
Создать объект uipushtool.
uipushtool — это кнопки, которые отображаются на панели инструментов фигуры. Кнопка создается с рамкой, которая отображается, когда пользователь наводит указатель на кнопку. Изображение можно задать с помощью свойства cdata.
Если parent опущено, то создается uipushtool для текущей фигуры. Если фигура недоступна, сначала создается новая фигура. Если фигура доступна, но не содержит uitoolbar, то uitoolbar будет создан.
Если parent задано, то uipushtool создается на uitoolbar с именем parent.
Все предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uipushtool.
Полный список свойств описан в Свойства 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.
- : uitoggletool (property, value, …) ¶
- : uitoggletool (parent, property, value, …) ¶
- : hui = uitoggletool (…) ¶
-
Создать объект uitoggletool.
uitoggletool — это переключатели, которые отображаются на панели инструментов фигуры. Кнопка создается с рамкой, которая отображается, когда пользователь наводит указатель на кнопку. Изображение можно задать с помощью свойства cdata.
Если parent опущено, то создается uitoggletool для текущей фигуры. Если фигура недоступна, сначала создается новая фигура. Если фигура доступна, но не содержит uitoolbar, то uitoolbar будет создан.
Если parent задано, то uitoggletool создается на uitoolbar с именем parent.
Все предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта 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–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/UI-Elements.html