我想在面板上方显示照片,我在这里看到文档:http://www.mathworks.com/help/matlab/ref/uistack.html 但它只提到如何在图中使用此功能(uistack)
我的节目到现在为止:
我的代码:
function varargout = panel(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @panel_OpeningFcn, ...
'gui_OutputFcn', @panel_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
handles.output = hObject;
guidata(hObject, handles);
function varargout = panel_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pushbutton1_Callback(hObject, eventdata, handles)
k = 1;
[filename pathname] = uigetfile({'*.*'},'File Selector','MultiSelect', 'on')
iscellstr(filename)
celldata1 = cellstr(pathname)
celldata2 = cellstr(filename)
celldata3 = strcat(celldata1,celldata2)
subplot(3,4,1),imshow(celldata3{1})
subplot(3,4,2),imshow(celldata3{2})
subplot(3,4,3),imshow(celldata3{3})
subplot(3,4,4),imshow(celldata3{4})
subplot(3,4,5),imshow(celldata3{5})
subplot(3,4,6),imshow(celldata3{6})
答案 0 :(得分:1)
我要求该版本的原因是,如果您使用的是旧版本(比R2014b),则可以将BackgroundColor
的{{1}}属性设置为“无”#39;这将使它透明。这个"功能"在R2014b之后没有工作......
uipanel
我担心其他选项需要更多关于GUI如何工作的知识 - 特别是从命令行创建GUI(而不是在GUIDE中):
%% Only HG1 (pre R2014b)
f = figure;
subplot ( 3, 3, 4 )
uipanel ( 'parent', f, 'Position', [0. 0. 0.6 0.6], 'BackgroundColor', 'none' );
注意:如果您在创建% Create a figure
f = figure;
% Create a uicontainer (this is a way of grouping controls together
uic = uicontainer ( 'parent', f, 'position', [0.1 0.1 0.5 0.5] );
% Create an axes -> which is a child of the UICONTAINER
ax = axes ( 'parent', uic, 'position', [0 0 1 1] );
% Create a uipanel -> which is a chilf of the FIGURE
uipanel ( 'parent', f, 'position', [0 0 0.4 0.7] );
% Some data to plot
image(rand(100)*255,'parent',ax)
% Note at this point the axes is underneath the uipanel
%%
% Hey presto we can move the uicontainer to the top and the axes appears! :)
uistack ( uic, 'top' )
后创建uicontainer
,则无需使用uipanel
- 我按顺序将其显示为uistack将按堆栈顺序移动'轴' ...
答案 1 :(得分:0)
我不确定我是否正确地取消了你所需要的东西,不过......
您可以先创建指定其位置(包括大小)的面板(uipanel
),然后根据需要创建任意多个轴(考虑要添加的图像数量)以便对排序进行打包棋盘(你可以通过正确设置它们的位置和大小来做到这一点)。
现在,您可以通过指定parent
属性来加载轴上的图像。
在下面的示例中,我创建了一个包含三个图像的uipanel,注意耦合" axes-handle - parent property"在调用imshow。
在" pushbutton1_Callback
"你的代码,你可以"自动化"这个程序。
uipanel ('position', [0 0 0.33 0.95],'title','PLOK');
a1=axes('position',[0 0 .3 .3])
a2=axes('position',[0 0.3 .3 .3])
a3=axes('position',[0 0.6 .3 .3])
imshow('curva_con_linee_verticali.jpg','parent',a1)
imshow('grafico_3d_assi_cartesiani.jpg','parent',a2)
imshow('prod_punt.jpg','parent',a3)
这就是图的样子(三个图实际上是三个jpg图像):
希望这有帮助。