How do I replace a button with an icon in App Designer?

33 visualizaciones (últimos 30 días)
Niraj Desai
Niraj Desai el 2 de Mayo de 2023
Respondida: Amit Dhakite el 11 de Ag. de 2023
In App Designer, I place a button that users can press to get more information. But rather than the standard App Designer button (a rectangle with rounded corners), I would like to have a circle around a question mark. I can select Icon in the Button menu to insert a circled question mark PNG, but it is still encased in a rectangle. Is there a way of getting rid of the rectangle?
  2 comentarios
Jon
Jon el 2 de Mayo de 2023
This has been asked before. Sounds like you can't change the shape of a button.
but as @Sean de Wolski suggest there
"You could use a uiimage instead. Then set it's ImageClickedFcn instead of ButtonPushedFcn callback"
Niraj Desai
Niraj Desai el 2 de Mayo de 2023
Thanks for pointing that msg out. I'll try that.

Iniciar sesión para comentar.

Respuestas (1)

Amit Dhakite
Amit Dhakite el 11 de Ag. de 2023
Hi Niraj,
To use a circular image as a button, and to avoid the outer rectangular covering, you can follow the steps mentioned below inside the callback function associated with the click:
  1. Extract the x and y coordinates of the mouse click.
  2. Initialize 3 variables, “centerX” and “centerYrepresenting the center, and “radius” representing the radius of the circular image.
  3. Calculate the distance between the mouse clicked position and the center of the circle.
  4. If the distance is smaller than the radius of the circle, it means that the mouse is clicked inside the circle, and then you can implement the desired functionality there.
Please refer to the code shown below to implement the above mentioned functionality:
% Get the coordinates of the click
rpoint = get(app.UIFigure, 'CurrentPoint');
clickX = rpoint(1);
clickY = rpoint(2);
centerX = ; % x-coordinate of the circular image's center
centerY = ; % y-coordinate of the circular image's center
radius = ; % Radius of the circular image
distance = sqrt((clickX - centerX)^2 + (clickY - centerY)^2);
if distance <= radius
% Desired functionality
end
To know more about the axes properties such as “CurrentPoint, please refer to the following link:
Hope it helps!

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by