App designer: UIAxis ButtonDownFcn with key modifier?
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi all,
I am using the app designer to design a small program, part of this involves getting the user to click on an axis. I use a ButtonDownFcn callback to get the location of the user's mouse click. I use this to select something plotted in the axis, that all works fine.
However, I would like to detect when the mouse click is associated with a modifier key press, such as ctrl or shift, so that the user can click on multiple items. I haven't found a way to do this.
There is the KeyPressFcn, but I'm not sure if this can be combined with the ButtonDownFcn? The UIAxis also stores a CurrentCharacter value, but this only tells me the last key pressed when the axis was selected, not that the current mouse click was simultaneous with a mouse click.
Does anyone have any ideas?
0 comentarios
Respuestas (2)
Walter Roberson
el 1 de Mayo de 2023
It isn't pretty... but if you set pickable parts false on your graphic objects but leave it true on your figure, then you can use a figure or uifigure button down function callback, in which case you can refer to the SelectionType property
You will probably want to test whether the CurrentPoint is inside a particular axes. For traditional figures there is an undocumented function https://undocumentedmatlab.com/matlab/wp-content/cache/all/articles/undocumented-mouse-pointer-functions/index.html . I do not know if it is available for uifigure
Simon Chan
el 1 de Mayo de 2023
You may combine several callbacks to achieve your goal.
The attached example uses WIndowKeyPressFcn and WindowReleaseFcn from a uifigure, with a combination of ButtonDownFcn on a primitive line.
With the 'control' or 'shift' key pressed, it display the x- or y-values of the clicked points respectively. On the other hand, you can configure it to do something else when no key is pressed with mouse click.
Ver también
Categorías
Más información sobre Develop Apps Using App Designer en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!