2014-11-21 212 views
0

我在MATLAB gui中设置对象的特定属性时遇到了问题。有时脚本返回错误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'); 

你知道如何解决它吗?

+0

有时或全部时间?您是否将文本框分配给GUI的句柄结构? – 2014-11-21 13:00:21

+0

1 - 有时命令失败。我可以在90%的时间内切换背景颜色和字符串的值。 2 - 第 – UserK 2014-11-21 13:44:35

回答

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); 

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

希望有帮助!

+0

Hi @ narutov6你解决了你的问题吗? – 2014-11-24 13:43:48