(ogn_ui_nodes)=

# UI Nodes

You may have seen the `omni.ui` extension that gives you the ability to create user interface elements through Python scripting. OmniGraph provides some nodes that can be used to do the same thing through an action graph.

These nodes provide an interface to the equivalent `omni.ui` script elements. The attributes of the nodes match the parameters you would pass to the script.

|                                             Node                                                    |                        omni.ui Equivalent                      |
| --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| {ref}`Button<GENERATED - Documentation _ognomni.graph.ui.Button>`                                   | {py:class}`omni.ui.Button`                                          |
| {ref}`ComboBox<GENERATED - Documentation _ognomni.graph.ui.ComboBox>`                               | {py:class}`omni.ui.ComboBox`                                        |
| {ref}`OnWidgetClicked<GENERATED - Documentation _ognomni.graph.ui.OnWidgetClicked>`                 | {py:class}`omni.ui.Widget.call_mouse_pressed_fn`                    |
| {ref}`OnWidgetValueChanged<GENERATED - Documentation _ognomni.graph.ui.OnWidgetValueChanged>`       | {py:class}`omni.ui.Widget.add_value_changed_fn`                     |
| {ref}`Slider<GENERATED - Documentation _ognomni.graph.ui.Slider>`                                   | {py:class}`omni.ui.IntSlider` {py:class}`omni.ui.FloatSlider`            |
| {ref}`VStack<GENERATED - Documentation _ognomni.graph.ui.VStack>`                                   | {py:class}`omni.ui.VStack`                                          |


## How To Use Them

The UI nodes are meant to be triggered to exist temporarily, meaning you want to ensure that they are part of a graph that creates them only once and then destroys them once their utility has ended.

