Matlab - Mover panel GUI

   
Vista:

Mover panel GUI

Publicado por Juan (27 intervenciones) el 06/04/2012 00:14:55
Hola, tengo una duda, ¿Se puede modificar la dimensión de un panel mientras ejecutas un GUI?

Imagina que tu fig tiene un UIPANEL1 que no tiene nada, y un BOTTOM.

Si pulsas el BOTTOM, quiero que el panel se desplace a la derecha 100 píxeles (o que suba/baje).

¿Se pude hacer? ¿Tiene algo que ver la opción ResizeFCN?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Mover panel GUI

Publicado por Juan (27 intervenciones) el 06/04/2012 00:23:44
Hola de nuevo, he investigado un poco más pero sigo sin resolver. Esto es lo que he hecho:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function pushbutton1_Callback(hObject, ~, handles)
handles.mover=1;
handles.output = hObject;
guidata(hObject, handles);
 
 
% --- Executes when uipanel1 is resized.
function uipanel1_ResizeFcn(~, ~, handles)
mover=handles.mover;
if mover==1
    set(handles.uipanel1,'Units','pixels');
    figpos=get(handles.uipanel1,'Position');
    upos=[figpos(1)+100,figpos(2)-20,figpos(3),figpos(4)];
    set(handles.uipanel1,'Position',upos);
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mover panel GUI

Publicado por gerardo gerardo_lonely@hotmail.com (95 intervenciones) el 06/04/2012 01:59:42
Hola Juan!

Bueno si puede cambiar la posicion de un uipanel en un guide
puedes hacerlo mediante un pushbutton, pero pienso que se veria mejor con un slider, este es el codigo que hice para mover un panel de arriba abajo mediante un slider
los tag del panel y el slider son uipanel1 y slider1 respectivamente, ojala lo entiendas sino me envias un correo para enviarte el fig completo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function varargout = mover_gui(varargin)
 
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @mover_gui_OpeningFcn, ...
                   'gui_OutputFcn',  @mover_gui_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
% End initialization code - DO NOT EDIT
 
function mover_gui_OpeningFcn(hObject, eventdata, handles, varargin)
uipnl_pos_inicial=get(handles.uipanel1, 'Position');
handles.pos_act=uipnl_pos_inicial;
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = mover_gui_OutputFcn(hObject, eventdata, handles)
 
varargout{1} = handles.output;
 
% SLIDER
function slider1_Callback(hObject, eventdata, handles)
pos_act=handles.pos_act;
sldr=get(hObject,'value');
set(handles.uipanel1, 'Position',[pos_act+[0, sldr, 0, 0]])
 
function slider1_CreateFcn(hObject, eventdata, handles)
 
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end


Saludos y Suerte! =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar