Matlab - Recuperar click ratón

   
Vista:

Recuperar click ratón

Publicado por Patricia (10 intervenciones) el 03/08/2014 16:24:36
Buenas Tardes,

Necesito ayuda...estoy intentando borrar unas líneas de un dibujo que tengo...eso lo consigo hacer con este código:

set(matriz_rectas,'ButtonDownFcn','Handle = gcbo');
% pause(2)
%
% % if ~isexist(Handle)
% axesHandlesToChildObjects = findobj(Handle, 'Type', 'line');
% if ~isempty(axesHandlesToChildObjects)
% delete(axesHandlesToChildObjects);
% end
% % end;

Pero mi problema es que eso lo quiero poner en una Gui, que tengo un botón de borrado..cuando le doy, si pongo ese código tal cual..no me funciona...Cuando pulso en alguna recta..no borra la línea ya que dice que no tiene nada en Handle. Pero luego cuando sale del callback de borrado..aparece el Handle en el workspace..pero no tengo manera de recuperarla..si lo pongo por separado y pongo otra función al entrar..me pasa lo mismo me dice que no hay nada en Handle. No tengo ni idea de como recuperar ese valor..ya que lo necesito para luego borrar ese muro...o todos los que el usuario quiera borrar...

Hay alguna manera de borrar esa línea con buttondownfcn???

Gracias
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 Jorge De Los Santos

Recuperar click ratón

Publicado por Jorge De Los Santos (212 intervenciones) el 12/08/2014 08:01:55
Hola Patricia.

La idea general para lograr lo que propones es algo similar. Pero en lugar de utilizar ButtonDownFcn debes utilizar WindowButtonDownFcn, ¿la diferencia?, esta última te permita capturar también eventos en los objetos gráficos "hijos" de la ventana principal. Además, para borrar la linea sobre la cual está situada el puntero debes hacer uso de "gco" (get current object) para obtener la referencia a ese objeto y enseguida utilizar la función "delete(obj)".

Para evitar cualquier tipo de confusión producto de las "explicaciones", te he adjuntado una pequeña GUI en la cual se muestra ejemplo de lo que te mencioné lineas atrás.

Espero te sea de utilidad, cualquier duda puedes preguntar y en medida de lo posible te proporcionaré la ayuda correspondiente.


Saludos.

Jorge De Los Santos.
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