2015-11-18 2 views
0

У меня есть окно с текстовым списком и параметромMenu. Я хотел бы обновить пункты меню опций всякий раз, когда выбор изменяется в текстовом списке.Обновить параметрМеню элементов каждый раз, когда выбор изменяется в textScrollList

Не уверен, что начать с этого.

Я использую обычный Maya Python.

+0

Может ваш обеспечить некоторый код, пожалуйста? – DrHaze

ответ

1

Основной трюк заключается в том, чтобы убедиться, что ваша функция обновления определена таким образом, чтобы она знала имена как optionMenu, так и textScrollList, чтобы они могли их редактировать. Легкий способ - определить обратный вызов после того, как оба элемента будут объявлены и сохранены в переменных - если все это в одной области, python автоматически вставляет нужные вам значения через закрытие - это намного более элегантно, чем делать это вручную.

Вот оченьминимальный пример

w = cmds.window() 
c = cmds.columnLayout() 
sl = cmds.textScrollList(append = ['a', 'b', 'c']) 
op = cmds.optionMenu(label = 'test') 
cmds.menuItem('created by default') 


# the callback is defined after the ui so it knows the values of 'sl' and 'op' 

def edit_options(): 
    # gets a list of selected items from the textScroll 
    selected = cmds.textScrollList(sl,q=True, si=True) 

    # loop through existing menus in the optionMenu and destroy them 
    for item in cmds.optionMenu(op, q=True, ill=True) or []: 
     cmds.deleteUI(item) 

    # add a new entry for every item in the selection 
    for item in selected: 
     cmds.menuItem(label = item, parent = op) 

    # and something not dependent on the selection too 
    cmds.menuItem(label = 'something else', parent = op) 

# hook the function up - it will remember the control names for you 
cmds.textScrollList(sl, e=True, sc = edit_options) 

cmds.showWindow(w) 

Более фон: http://techartsurvival.blogspot.com/2014/04/maya-callbacks-cheat-sheet.html

1

Вы должны использовать одно изображение для заполнения текстового экрана и привязать его к флажку selectCommand.

Вы, возможно, придешься использовать частичные передать имя textscroll в качестве аргумента в вашей функции

Надеется, что это помогает.

 Смежные вопросы

  • Нет связанных вопросов^_^