Panda3D Manual: DirectRadioButton
<<prev | top | next>> |
This feature is only available in Panda3D versions 1.5.3 and higher DirectRadioButtons are similar to check buttons, except only one button is selected when it is clicked. Their usage is almost identical to regular buttons, except that the text area and box area can be modified separately.
Keyword | Definition | Value
text_scale | Scale of the displayed text | (sx,sz)
indicatorValue | The initial boolean state of the radiobutton | 0 or 1
variable | The variable whose value will be set by radiobutton. Since we can not use call by reference for int or string variables in python, I used a list insteads. | define a list and pass it
value | The value to be set to the variable. Since we are using a list, we can define multiple values. But the length of value list must be same as length of variable list. | a list of values
others | The list of radio button instances sharing same variable. This must be set by using setOthers() after all radiobutton is created. | a list of radioButton instances
boxImage | BG Image of the radio button | Image Path
boxImageColor | Color of the BG image | (R,G,B,A)
boxImageScale | Scale of the BG image | Number
boxGeom | FG Image on the radio button | Image Path
boxGeomColor | Color of the FG image | (R,G,B,A)
boxGeomScale | Scale of the FG image | Number
boxPlacement | Position of the box relative to the text area | 'left','right', 'above', 'below'
boxBorder | Size of the border around the box | Number
command | Command the button performs when clicked (In version 1.6 and higher, no parameter is passed unless extraArgs are defined. Before, a single argument was passed by default.) | Function
extraArgs | Extra arguments to the function specified in command | [Extra Arguments]
commandButtons | Which mouse button must be clicked to do the command | LMB, MMB, or RMB
rolloverSound | The sound made when the cursor rolls over the button | Sound File Path
clickSound | The sound made when the cursor clicks on the button | Sound File Path
pressEffect | Whether or not the button sinks in when clicked | <0 or 1>
## Example
    import direct.directbase.DirectStart
    from direct.gui.OnscreenText import OnscreenText
    from direct.gui.DirectGui import *
    from pandac.PandaModules import *

    v = [0]
    #add some text
    bk_text = "This is my Demo"
    textObject = OnscreenText(text = bk_text, pos = (0.95,-0.95),
    scale = 0.07,fg=(1,0.5,0.5,1),align=TextNode.ACenter,mayChange=1)

    #callback function to set  text
    def setText(status=None):
        bk_text = "CurrentValue : %s"%v
        textObject.setText(bk_text)

    #add button
    buttons = [
        DirectRadioButton(text = 'RadioButton0', variable=v, value=[0], scale=0.05, pos=(-0.4,0,0), command=setText),
        DirectRadioButton(text = 'RadioButton1', variable=v, value=[1], scale=0.05, pos=(0,0,0), command=setText),
        DirectRadioButton(text = 'RadioButton2', variable=v, value=[2], scale=0.05, pos=(0.4,0,0), command=setText)
    ]

    for button in buttons:
        button.setOthers(buttons)

    #run the tutorial
    run()
<<prev | top | next>> |