2011-04-19 120 views
0

我嘗試了很多事情,並通過google和stackoverflow看到了關鍵字thousant,而且我實際上總是落在相同的(對我無用的)解決方案中。在GUI中更改面板屬性

這裏是我的問題:

我有一個GUI與uibuttongroup「Youpi」有兩個單選按鈕「看得見」和「全國住房研究所」。 我有其他的uipanel「Tralala」。

我創建了下面的代碼:

function Youpi_SelectionChangeFcn(hObject,eventdata) 
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object. 
    case 'visible' 
     set(handles.Tralala, 'visible', 'on'); 
    case 'invi' 
     set(handles.Tralala, 'visible', 'off'); 
    otherwise 
     % Code for when there is no match.   
end 

它不工作,我總是得到同樣的錯誤信息(見下文)。 我做了這兩個測試,找出問題的來源: _I改變了情況下的顯示功能:當我切換我的兩個單選按鈕,消息顯示正確。它不是來自SelectionChangeFcn函數。在第一個叫做「GUI_OpeningFcn」的函數中,我輸入了set(handles.Tralala, 'visible', 'off');,它可以正常工作(例如,如果我運行GUI,我沒有看到面板)。

你知道爲什麼面板把手從一個功能消失到另一個功能嗎?

這裏的錯誤消息:

??? Undefined variable "Tralala" or class "handles.Tralala". 

Error in ==> MaccorGUI>Youpi_SelectionChangeFcn at 272 
     set(handles.Tralala, 'visible', 'on'); 

Error in ==> hgfeval at 63 
     feval(fcn{1},varargin{:},fcn{2:end}); 

Error in ==> uitools.uibuttongroup.childAddedCbk>manageButtons at 80 
    hgfeval(cbk, source, evdata); 

??? Error while evaluating uicontrol Callback 

請幫我找到一個解決方案。

謝謝。

回答

0

您需要添加處理的選擇變化的函數定義

function Youpi_SelectionChangeFcn(hObject,eventdata, handles) 
+0

謝謝您的回答:)。但是我仍然收到類似的錯誤,只有第一行發生了變化: '???輸入參數「手柄」未定義。# 這是查找解決方案的開始。如果我發現,我會保持更新。 – Wlikotae 2011-04-20 07:05:39

+0

我有R2010a。在網絡上,我看到2006年有些人在製作回調函數SelectionChangeFcn時會自動顯示「句柄」輸入。所以我刪除了我的功能,右鍵單擊我的按鈕組,並回調>> SelectionChangeFcn,而不是手動操作。這次出現「句柄」輸入。然而在調試器中,我只有hObject和eventdata,當我單擊其中一個單選按鈕時。 – Wlikotae 2011-04-20 08:06:07

+0

@Wlikotae:奇怪的不知道發生了什麼事。無論如何,我看到你找到了解決辦法。 – Azim 2011-04-20 18:14:37

2

好,我找到了解決辦法。我不認爲這是最好的,但至少它是有效的。

之前「開關」我加了下面的命令:

a = guidata(get(hObject,'parent')); 

而在交換機而不是使用「處理」用「a」。

注:它的工作原理也與guihandles(你可以有機會獲得handles.output這種方式),每一次我在按鈕中的一個

0

我創建了一個組面板按鈕選擇圖像,他m'aficher每個按鈕具有圖像 謝謝你幫我找到源代碼 我做 uipanel4_SelectionChangeFcn功能(hObject,EVENTDATA,處理) %hObject處理所選擇的對象在uipanel4 %與以下EVENTDATA結構域(請參閱UIBUTTONGROUP) %EventName:string'SelectionChanged'(只讀) %OldValue:hand如果沒有選擇對象,則返回空;如果RadioButton1 == get(handles.radiobutton1,'value','value'),則返回「當前選定對象的句柄」 % % % 1) 集(handles.axes4, '因爲') 其他radioButton2 ==得到(handles.radiobutton2, '價值',1) 集(handles.axes4 '人')