Matlab - Ventana sin click

 
Vista:
sin imagen de perfil
Val: 89
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ventana sin click

Publicado por Emmanuel (30 intervenciones) el 14/11/2018 16:19:30
Estoy desarrollando una GUI y quiero ingresar un "botón" informativo, que se active solo si el mouse pasa encima de él, y desactive al quitarse.

alguien tendrá un código para esta acción, se los agradecería mucho.
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
Imágen de perfil de Lindsey
Val: 428
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ventana sin click

Publicado por Lindsey lindsey.acourtt@gmail.com (112 intervenciones) el 15/11/2018 23:03:52
Suponiendo que tu botón informativo es pushbutton1, puedes agregar esta función al código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% --- Executes on mouse motion over figure - except title and menu.
function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
posicionmouse = get(hObject,'CurrentPoint');
dimension = get(handles.pushbutton1,'Position');
limx = [dimension(1) dimension(1)+dimension(3)];
limy = [dimension(2) dimension(2)+dimension(2)];
 
if ((posicionmouse(1)>=limx(1))&(posicionmouse(1)<=limx(2)))&((posicionmouse(2)>=limy(1))&(posicionmouse(2)<=limy(2)))
    set(handles.pushbutton1,'Enable','on');
else
    set(handles.pushbutton1,'Enable','off');
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 89
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ventana sin click

Publicado por Emmanuel (30 intervenciones) el 16/11/2018 17:16:12
Muchas gracias por tu respuesta Lindsey, solo me queda la duda de en que parte del código hay que agregarlo, ya que no responde al momento de correr sobre la aplicación

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
43
44
45
46
47
48
49
50
51
52
53
54
55
function varargout = PSD_main(varargin)
 
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @PSD_main_OpeningFcn, ...
                   'gui_OutputFcn',  @PSD_main_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
 
 
% --- Executes just before PSD_main is made visible.
function PSD_main_OpeningFcn(hObject, eventdata, handles, varargin)
 
handles.output = hObject;
 
guidata(hObject, handles);
 
 
function varargout = PSD_main_OutputFcn(hObject, eventdata, handles)
 
varargout{1} = handles.output;
 
 
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton7 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUI
 
 
function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
posicionmouse = get(hObject,'CurrentPoint');
dimension = get(handles.pushbutton1,'Position');
limx = [dimension(1) dimension(1)+dimension(3)];
limy = [dimension(2) dimension(2)+dimension(2)];
 
if ((posicionmouse(1)>=limx(1))&(posicionmouse(1)<=limx(2)))&((posicionmouse(2)>=limy(1))&(posicionmouse(2)<=limy(2)))
    set(handles.pushbutton1,'Enable','on');
else
    set(handles.pushbutton1,'Enable','off');
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
Imágen de perfil de Lindsey
Val: 428
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ventana sin click

Publicado por Lindsey (112 intervenciones) el 16/11/2018 20:56:55
Si no sabes donde ubicar la función prueba a dar clic derecho en cualquier lugar del fondo del .fig y a continuación las opciones View callbacks > WindowButtonMotionFcn, cuando haces esto matlab ubica automáticamente la función en el .m, y solo te quedaría agregar las acciones que van dentro.
Si te da algún error puedes intentar ver cual es el tag de la figura, en mi caso era figure1, por eso la función se llama figure1_WindowButtonMotionFcn, pero si el tag es otro pues tendrías que cambiar el nombre de la función para que concuerden.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 89
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ventana sin click

Publicado por Emmanuel (30 intervenciones) el 16/11/2018 21:17:46
Perfecto, muchas gracias!
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