2009-07-07 143 views

回答

6

完成此操作的一種方法是在開始時創建GUI對象,但將其「可見性」屬性設置爲「關閉」。然後,當用戶點擊一個按鈕時,您將「可見性」屬性重新設置爲「開啓」。這樣,當GUI運行時,您不會製作新的GUI對象,您只需更改它的哪些部分可見或不可見。

編輯:如果你不知道你有多少新的GUI對象需要,直到運行時,這是你如何將新的GUI對象添加到手柄結構(其中hFigure是一個句柄GUI圖):

p = uicontrol(hFigure,'Style','pushbutton','String','test',... 
       'Callback',@p_Callback); % Including callback, if needed 
handles.test = p; % Add p to the "test" field of the handles structure 
guidata(hFigure,handles); % Add the new handles structure to the figure 

那麼您需要當然必須寫新的GUI對象的回調函數(如果它需要一個),這可能會是這個樣子:

function p_Callback(hObject,eventdata) 
    handles = guidata(gcbf); % This gets the handles structure from the figure 
    ... 
    (make whatever computations/changes to GUI are needed) 
    ... 
    guidata(gcbf,handles); % This is needed if the handles structure is modified 

我在上面的代碼中使用的感興趣的函數有:GUIDATA(用於存儲/檢索GUI的數據)和GCBF(獲取其回調當前正在執行的對象的父圖的句柄)。

3

使用UICONTROL,您將能夠添加'字段'(稱爲uicontrols或小部件)。

您將要指定樣式來獲取編輯框,按鈕等等

你實際上可能想擁有所有的部件已經存在的指南,然後只需更改知名度啓用財產根據需要。

你可以找到關於GUI構建我的視頻教程在這裏MATLAB: http://blogs.mathworks.com/videos/category/gui-or-guide/

這應該在GUI構建覆蓋和許多相關的話題。

+0

我可以將創建的uicontrol對象添加到生成的手柄嗎?像設置(handles.test,uicontrol_element) – victor 2009-07-07 17:29:47

+0

當你使UICONTROL,捕獲句柄: handles.newWidget = uicontrol(.......) – MatlabDoug 2009-07-07 19:16:38