【发布时间】:2014-04-16 16:59:17
【问题描述】:
我一直在探索 MATLAB GUI 上的一些布局,并想知道是否可以将几个面板放在一起,然后根据按钮在其中一个或另一个之间进行选择。
到目前为止,我所做的是使用 GUIDE 创建了一个 GUI。在那我创建了面板 1,里面有一个静态文本,上面写着“面板 1 可见”,另一个面板 2 里面有一个静态文本,里面写着“面板 2 可见”。我还创建了两个按钮,一个仅显示面板 1,另一个仅显示面板 2
观察: 1)当我将面板放在不同的位置时,按钮按预期工作 2)当我将面板彼此叠放时,或者即使它们部分重叠,只有面板 1 的按钮按预期工作。面板 2 的按钮不显示任何内容(而不是仅显示面板 2)
谁能解释一下是否有办法让多个面板相互叠加,然后在运行时一次只查看其中一个(使用 GUIDE)。
GUIDE .m 文件如下:
function varargout = PanelTest(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @PanelTest_OpeningFcn, ...
'gui_OutputFcn', @PanelTest_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function PanelTest_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = PanelTest_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function Panel1_Callback(hObject, eventdata, handles)
set(handles.Panel1Tag,{'visible'},{'on'})
set(handles.Panel2Tag,{'visible'},{'off'})
function Panel2_Callback(hObject, eventdata, handles)
set(handles.Panel1Tag,{'visible'},{'off'})
set(handles.Panel2Tag,{'visible'},{'on'})
谢谢
【问题讨论】:
标签: matlab matlab-guide