uibuttongroup with no buttons selected?

I would like to have a uibuttongroup that contains several togglebutton objects. By default, the uibuttongroup obviously only lets you have one toggle button selected (i.e., pressed) at a time. But I would like the possibility to have none of the buttons pressed. I don't see an obvious way to do that using a uibuttongroup. I fear I'll have to just create the toggle buttons and write the logic that controls the states of the buttons myself.
For example, look at the way the default toolbar works in a matlab figure. There are several buttons (rotate, data cursor, etc), and you can't have more than one pressed at a single time, but you can have none of them selected. Any ideas would be much appreciated!
Thanks, Justin

4 Commenti

It isn't possible as far as I am aware within a button group as the purpose there is to have exactly one selection.
You could add another radio button option to represent that - e.g. Viewing states: 'None', 'Zoom', 'Pan', etc, but it is a bit ugly. I guess toggle buttons are more used for that kind of thing (as in the menu example you give) rather than radio buttons though I guess they have to program the mutual exclusivity behaviour there.
Unfortunately, I think uibuttongroup was designed to act as a "choose one of these options and one must always be selected" kind of tool.
"I fear I'll have to just create the toggle buttons and write the logic that controls the states of the buttons myself."
Why is this a fear? This does not add that much complexity, and I think it is how many built-in MATLAB GUIs are programmed. For example, the "Zoom and Pan" section of the Image Segmenter app uses three toggle buttons as opposed to a button group.
Thanks Adam and Matt for your responses. Looks like its best to just do it myself.
@Matt, perhaps "fear" was the wrong word choice. Its not a super complicated problem as you mentioned. I think mild "annoyance" is more what I feel in having to basically re-invent the wheel for a scenario that seems pretty commonplace. I would have expected Mathworks to have this functionality already baked into uibuttongroup.
You can't deselect a radio button though, it isn't like a toggle button so you could never get back into the nothing selected state even if you could initialise that way.

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 29 Apr 2016
Create one additional button and set its visible property off, and make it the initially selected button.

2 Commenti

Justin Solomon
Justin Solomon il 30 Apr 2016
Modificato: Justin Solomon il 30 Apr 2016
Thats a good idea. Only problem is once the user clicks a button, they will never be able to get back to the initial unchecked state. Of course I could write the selection change callback to handle all theses conditions but as I said above, that's the very thing I was hoping to avoid. Anyways, thanks for the suggestion.
You could make that extra button visible and label it as "None" or something similar.
uibuttongroup can also manage toggle buttons; you might want to experiment with that.

Accedi per commentare.

Categorie

Scopri di più su Interactive Control and Callbacks in Centro assistenza e File Exchange

Prodotti

Richiesto:

il 29 Apr 2016

Commentato:

il 30 Apr 2016

Community Treasure Hunt

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

Start Hunting!

Translated by