I’m trying to create a group of three radio buttons, the first of which is “selected” by default and the other two are false, but I can’t figure out how to group them together. Currently, the first of the three is active, but when I click on the others they just activate too (and stay that way) rather than behaving as a group.
I’ve tried:
Giving each button the same id
Adding a group="radioGroup" to each
Passing the same onclick function to each
The strangeness continues…
This doesn’t work (using label to mark the radio buttons):
local dlg = Dialog("No Dice")
:separator{ text="Apply to frames" }
:radio{ id="applyAll", label="All", selected=true, onclick=selectFrameRange }
:newrow()
:radio{ id="applyRange", label="Range", onclick=selectFrameRange }
:number{ id="firstFrame", text="1", decimals=0 }
:label{ text="to" }
:number{ id="lastFrame", text=tostring(numFrames), decimals=0 }
:newrow()
:radio{ id="applySelected", label="Selected", onclick=selectFrameRange }
:separator()
:button{ id="ok", text="OK" }
:button{ id="cancel", text="Cancel" }
:show()
but this does (using text to mark them instead):
local dlg = Dialog("This works")
:separator{ text="Apply to frames" }
:radio{ id="applyAll", text="All", selected=true, onclick=selectFrameRange }
:newrow()
:radio{ id="applyRange", text="Range", onclick=selectFrameRange }
:number{ id="firstFrame", text="1", decimals=0 }
:label{ text="to" }
:number{ id="lastFrame", text=tostring(numFrames), decimals=0 }
:newrow()
:radio{ id="applySelected", text="Selected", onclick=selectFrameRange }
:separator()
:button{ id="ok", text="OK" }
:button{ id="cancel", text="Cancel" }
:show()
Apparently using label at all breaks the radio group completely, even if they all have the same label. If anyone can explain this behavior I’d appreciate it. I feel like I’m almost certainly missing something.
dacap
May 20, 2024, 10:04pm
3
Hi @sudo_whoami , the first radio that has a label creates a new group, use the text property to set the text of the specific radio option.
E.g.
local dlg = Dialog("Radio Groups")
:radio{ label="Group1", text="A" }:newrow()
:radio{ text="B" }:newrow()
:radio{ text="C" }
:radio{ label="Group2", text="A" }
:radio{ text="B" }
:radio{ text="C" }
:separator()
:button{ id="ok", text="OK" }
:button{ id="cancel", text="Cancel" }
:show()
1 Like
@dacap Ah, that makes sense. Thanks for the clarification!
2 Likes