2014-11-21 209 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