Usage Examples
Create an OptionsMenu with Various Items
from omni.kit.widget.options_menu import OptionsMenu, OptionsModel, OptionItem, OptionSeparator, OptionRadios, OptionCustom
import omni.ui as ui
# Define a custom build function for the custom menu item
def custom_build_function():
return ui.Label("Custom Option")
# Define radio options
radios = [
("Radios", None),
"First",
("Second", "Second Radio"),
"Third",
]
# Create an options model with items
options_model = OptionsModel(
"Options",
[
OptionItem("audio", text="Audio"),
OptionItem("materials", text="Materials"),
OptionItem("scripts", text="Scripts"),
OptionItem("textures", text="Textures"),
OptionItem("usd", text="USD"),
OptionRadios(radios, default="First"),
OptionSeparator(),
OptionCustom(build_fn=custom_build_function),
OptionSeparator(),
OptionItem("Disabled", enabled=False),
OptionItem("Disabled and checked", default=True, enabled=False),
]
)
# Instantiate and display the options menu
options_menu = OptionsMenu(model=options_model)
options_menu.show_at(100, 100) # Position where the menu will appear
Rebuild OptionsMenu
import omni.ui as ui
from omni.kit.widget.options_menu import OptionsMenu, OptionsModel, OptionItem, OptionSeparator, OptionCustom
# Function to build custom menu items
def build_custom_menu_item():
ui.Label("Custom Menu Item")
# Initialize the options model with various items
model = OptionsModel(
"Options",
[
OptionItem("Audio", text="Audio"),
OptionItem("Materials", text="Materials"),
OptionItem("Scripts", text="Scripts"),
OptionSeparator(),
OptionCustom(build_custom_menu_item) # Using OptionCustom for custom build function
]
)
# Create and display an options menu
menu = OptionsMenu(model)
menu.show_at(100, 100) # Display the menu at position (100, 100)
# ... Perform some operations that may change the menu items' values ...
items = model.get_item_children()
items[1].value = True # Set 'Materials' to checked
# Replace with new items
model.rebuild_items(
[
OptionItem("Test"),
OptionSeparator(),
OptionItem("More"),
])
Get and Set Values of Menu Items
import omni.ui as ui
from omni.kit.widget.options_menu import OptionsMenu, OptionsModel, OptionItem, OptionSeparator, OptionCustom
# Function to build custom menu items
def build_custom_menu_item():
ui.Label("Custom Menu Item")
# Initialize the options model with various items
model = OptionsModel(
"Options",
[
OptionItem("Audio", text="Audio"),
OptionItem("Materials", text="Materials"),
OptionItem("Scripts", text="Scripts"),
OptionSeparator(),
OptionCustom(build_custom_menu_item) # Using OptionCustom for custom build function
]
)
# Create and display an options menu
menu = OptionsMenu(model)
menu.show_at(100, 100) # Display the menu at position (100, 100)
# Get the list of items from the model
items = model.get_item_children()
# Example of setting a specific item's value
items[0].value = True # Set the "Audio" option item to checked
# Example of getting a specific item's value
audio_is_checked = items[0].value # Get the value of the "Audio" option item
RadioMenu
from omni.kit.widget.options_menu import RadioMenu, RadioModel
field_model = RadioModel(["Name", "Date", "Price"], default_index=1)
order_model = RadioModel(["Ascending", "Descending", "Random"])
menu = RadioMenu("Sort By", [field_model, order_model])
menu.show_at(100, 100)