MATLAB GUI-设置字符串属性返回'无效或删除的对象。'

时间:2014-11-21 12:43:32

标签: matlab matlab-guide

我在MATLAB gui中设置对象的特定属性时遇到问题。有时脚本会返回错误

  

无效或删除对象。

这是我想要更改的文字字段。

conTxt = uicontrol('Style','text', 'String','Offline','ForegroundColor',[.99 .183 0.09], ...
        'Position', [70 20 100 30],...
        'Parent',hTabs(1), 'FontSize',13,'FontWeight','bold');

我已经设置了一个串行通信,其中文本字段用作用户的反馈。当响应从串行到达时,执行该行:

set(conTxt,'ForegroundColor', [.21 .96 .07],'String','Online');

你知道怎么解决吗?

1 个答案:

答案 0 :(得分:1)

我发布这个作为答案,因为评论太长而且难看。

从注释看起来,GUI不能识别文本框,因为它不在其句柄结构中,因此当执行回调时,GUI不知道在哪里查找元素。如果您尝试以下操作该怎么办:

1)将组件存储在句柄结构中,例如:

handles.conTxt = uicontrol('Style','text', 'String','Offline','ForegroundColor',[.99 .183 0.09], ...
        'Position', [70 20 100 30],...
        'Parent',hTabs(1), 'FontSize',13,'FontWeight','bold');

等等其他组件。

2)在程序化GUI的设置结束时,使用GUI的guidata属性更新句柄结构:

guidata(handles.figure,handles);

3)然后在每次回调开始时,使用以下内容:

handles = guidata(gcf);

获取句柄结构并访问其组件。

希望有所帮助!