Spec-Zone.ru › Octave 8

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 определяется свойством 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".

См. также: 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 и возвращает дескриптор (handle) к нему.

Если 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 и возвращает дескриптор (handle) к нему.

Если 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.

Возвращаемое значение hui (необязательно) – это дескриптор (handle) созданного объекта 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, то она будет создана.

Если parent указано, то uipushtool создаётся на панели инструментов parent.

Любые предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uipushtool.

Возвращаемое значение hui (необязательно) – это дескриптор (handle) созданного объекта 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, то она будет создана.

Если parent указано, то uitoggletool создаётся на панели инструментов parent.

Любые предоставленные пары свойство-значение переопределят значения по умолчанию созданного объекта uitoggletool.

Возвращаемое значение hui (необязательно) – это дескриптор (handle) созданного объекта 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/v8.1.0/UI-Elements.html

Spec-Zone.ru

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