Go to: Synopsis. Return value. Flags. Python examples.

Synopsis

loadUI([listTypes=boolean], [uiFile=string], [uiString=string], [verbose=boolean], [workingDirectory=string])

Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.

loadUI is undoable, NOT queryable, and NOT editable.

loadUI lets you generate a Maya user interface from a Qt user interface (.ui) file. While creating the interface, if a Qt widget’s class is recognized, and a Maya-equivalent exists, the Maya-equivalent widget will be used. Any dynamic widget properties starting with a ‘-’ will be treated as a MEL key/value pair. Widget properties starting with a ‘+’ will be treated as a Python key/value pair. Properties will be applied to the widget upon creation. For additional details about ui files, please refer to Qt docs.

Return value

stringFull path name to the root control.

Flags

listTypes, uiFile, uiString, verbose, workingDirectory
Long name (short name) Argument types Properties
listTypes(lt) boolean create
Returns the list of recognized UI types and their associated Maya command.
uiFile(f) string create
Full path to a user interface file to load.
uiString(s) string create
Load UI from a formated string.
verbose(v) boolean create
Extra information about created controls will be printed.
workingDirectory(wd) string create
Sets the working directory, the loader looks for resources such as icons and resouce files in paths relative to this directory.

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can have multiple arguments, passed either as a tuple or a list.

Python examples

import maya.cmds as cmds

import maya.cmds as cmds

# Note: mydialog.ui must already exist
dialog1 = cmds.loadUI(f='/users/username/mydialog.ui')
cmds.showWindow(dialog1)

# Load from a string
dialog = ""
counter = 0

# Define the button command callback
def onClick():
    global counter
    global dialog
    counter += 1
    control = "{}|verticalLayout|mybutton".format(dialog)
    cmds.button(control,
        edit=True,
        label="Clicked {} times".format(counter))
    print(counter)

# Create a dialog with a button from a UI description in string form
def showDialog():
    dialogString = '''<?xml version='1.0' encoding='UTF-8'?>
        <ui version='4.0'>
        <class>Dialog</class>
        <widget class='QDialog' name='Dialog'>
        <layout class='QVBoxLayout' name='verticalLayout'>
            <item>
            <widget class='QPushButton' name='mybutton'>
            <property name='text'>
            <string>Clicked 0 times</string>
            </property>
            <property name='+command'>
            <string>"onClick()"</string>
            </property>
            </widget>
            </item>
        </layout>
        </widget>
        </ui>'''

    global dialog
    dialog = cmds.loadUI(s=dialogString)
    cmds.window(dialog, e=True, w=200, h=50)
    cmds.showWindow(dialog)

showDialog()