我正在编写一个 OO gui 程序,但在尝试使用该set()
函数更改 GUI 元素属性时遇到问题。我只是想将按钮启用属性从关闭更改为打开。我附上了显示下面相同问题的删节代码。matlab 处理类等的方式感觉很奇怪,所以问题可能只是由于我对系统的误解造成的。无论如何,当我尝试在 上使用该set()
函数时handle AD.buttonExit
,当我在函数中执行命令时,它会按预期initUI()
工作。如果我尝试在不同的函数中做同样的事情,它会失败。我通过简单地打印AD
. 在initUI
函数中,它清楚地显示了一个句柄值buttonExit
,它不在构造函数(或任何其他类成员函数)中。我觉得我犯了一个基本的错误,但是我没有看到它,我希望有人可以帮助我。
-- rfhigler
代码(为清楚起见而删节):
classdef test
properties
AppUI;
buttonExit;
end
methods
function AD = test()
%draws UI
AD.initUI();
set(AD.buttonExit, 'Enable', 'on')
AD.test2()
end
function initUI(AD)
AD.AppUI = figure('Visible','off','Position',[520,321,695,482], 'MenuBar', 'none', 'Name', '3D Particle Tracking',...
'NumberTitle', 'off', 'Resize', 'off', 'Color', [0.94,0.94,0.94]);
AD.buttonExit = uicontrol('Enable', 'off', 'Style', 'pushbutton', 'Visible', 'on', 'Position', [35,29,181,31], 'String', 'Exit');
set(AD.AppUI, 'Visible', 'on');
%1 set(AD.buttonExit, 'Enable', 'on')
end
function test2(AD)
set(AD.buttonExit, 'Enable', 'on')
end
end
end