我想自定义一些 MATLAB uicontrols(例如下拉框),以赋予它们更多用户友好的功能。
我的问题是:是否可以扩展/继承 uicontrol?如果是这样,你怎么做?如果没有,是否有解决方法?
我已经尝试过这个基本代码来设置它,但我收到以下错误:
The specified super-class 'uicontrol' contains a parse error or cannot be found on
MATLAB's search path, possibly shadowed by another file with the same name.
classdef ComboBox < uicontrol
methods(Access = public)
function obj = ComboBox()
set(obj, 'Style', 'popup');
end
end
end
当我尝试将其添加到图形时发生错误:
cmb = ComboBox();
set(cmb, 'Parent', obj.ui_figure);
编辑:经过考虑,我认为这将是一个不错的解决方法,但是,如果可能的话,我仍然想知道如何扩展 uicontrol。
classdef ComboBox < uicontrol
properties(Access = public)
Control;
end
methods(Access = public)
function obj = ComboBox(parent, items)
obj.Control = uicontrol();
set(obj.Control, 'Style', 'popup');
set(obj.Control, 'Parent', parent);
set(obj.Control, 'String', items);
end
end
end