Я работаю в GUI в приложении MATLAB. Я использую uitable
объект. Тогда я нахожу интересным undocumented feature, как сортировать свои данные, выбрать всю строку и т.д.Функциональный дескриптор с использованием функции `set` MATLAB
Я делаю это так:
% create jhandle to my uitable object
juiTable = findjobj(handles.uitable1,'class','UIScrollPane');
jtable = juiTable(1).getComponent(0).getComponent(0);
%... some my action like this:
jtable.setRowSelectionAllowed(true);
%...
%and now lets try use callback for selected cell in uitable:
juiFunHandle = handle(jtable, 'CallbackProperties');
set(juiFunHandle, 'MousePressedCallback', @CellSelectionCallback);
set(juiFunHandle, 'KeyPressedCallback', @CellSelectionCallback);
Это прекрасно работает.
Теперь вопрос: как поставить несколько параметров на CellSelectionCallback
? Я хочу, чтобы эта функция сделала какое-то действие (активирует некоторые кнопки и т. Д.). Для этого я пытаюсь установить GUI handles
. Но как?
Моя CellSelectionCallback
функция:
function CellSelectionCallback(juiTable, varargin)
% get it from the example
row = get(juiTable,'SelectedRow')+1;
fprintf('row #%d selected\n', row);
P.S. Я вижу varargin
. Могу ли я использовать несколько аргументов? Как установить его с помощью моей функции set
?
Ах, конечно! Просто используйте его как обычную анонимную функцию! Кстати, я могу использовать 'function CellSelectionCallback (juiTable, varargin)', а затем 'varargin {2}'. –
@Mikhail_Sam Конечно, вы тоже можете это сделать, я просто предпочитаю явные входы вместо 'varargin', поэтому я показал это как альтернативный подход. – Suever