Spec-Zone.ru › Octave 9

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.

Объекты 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]);

См. также: figure, uicontrol.

: 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. Эта возможность пока не реализована.

См. также: figure, uipanel.

: 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 не указано, создаётся кнопка.

Допустимые значения style для uicontrol:

"checkbox"

Создать флажок, позволяющий пользователю выбирать включённое или выключенное состояние.

"edit"

Создать поле редактирования, позволяющее пользователю вводить одну или несколько строк текста.

"listbox"

Создать список, отображающий перечень элементов и позволяющий пользователю выбрать один или несколько элементов.

"popupmenu"

Создать раскрывающееся меню со списком вариантов, которые пользователь может выбрать, щёлкнув по элементу управления.

"pushbutton"

Создать кнопку, нажатие которой пользователем вызывает действие.

"radiobutton"

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

См. также: figure, uipanel.

: 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

См. также: figure, uicontrol.

: hui = uimenu (property, value, …)
: hui = uimenu (h, property, value, …)

Создать объект uimenu и вернуть дескриптор на него.

Если h не задан, создаётся меню верхнего уровня для текущей фигуры. Если задан 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.

: hui = uicontextmenu (property, value, …)
: hui = uicontextmenu (h, property, value, …)

Создать объект 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);

См. также: figure, uimenu.

: hui = uitoolbar ()
: hui = uitoolbar (property, value, …)
: hui = uitoolbar (parent)
: hui = uitoolbar (parent, property, value, …)

Создать объект 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.

: hui = uipushtool ()
: hui = uipushtool (property, value, …)
: hui = uipushtool (parent)
: hui = uipushtool (parent, property, value, …)

Создать объект 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.

: hui = uitoggletool ()
: hui = uitoggletool (property, value, …)
: hui = uitoggletool (parent)
: hui = uitoggletool (parent, property, value, …)

Создать объект 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–2026 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.4.0/UI-Elements.html

Spec-Zone.ru

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