Я написал простой пользовательский интерфейс, который требует пользователя выбрать что-то из выпадающего списка, а затем с помощью этого выбора, код выполняет остальную часть материалаoptionMenu не возвращает значение
Прямо сейчас, я у меня есть 2 вопроса .. 1. «Значение» не точно возвращается, как только будет выбран формат, и нажата кнопка «ОК» ... Я что-то пропустил? 2. Как я могу сделать закрытие пользовательского интерфейса на кнопке OK?
import maya.cmds as cmds
def mainCode():
...
...
print "UI popping up"
showUI()
print "A format has been selected"
cmds.optionMenu('filmbackMenu', edit = True, value = xxx) # <-- I want to grab the value from the menu selection and input into this 'value' flag
...
...
def showUI():
if cmds.window("UI_MainWindow", exists = True):
cmds.deleteUI("UI_MainWindow")
cmds.window("UI_MainWindow", title = "User Interface Test", w = 500, h = 700, mnb = False, mxb = False, sizeable = False)
cmds.columnLayout("UI_MainLayout", w = 300, h =500)
cmds.optionMenu("UI_FormatMenu", w = 250, label = "Select a Format")
list01 = ['itemA-01', 'itemB-02', 'itemC-02', 'itemD-01', 'itemE-01', 'itemF-03']
for x in list01:
cmds.menuItem(label = str(x))
cmds.button("UI_SelectButton", label = "OK", w = 200, command=ObjectSelection)
cmds.showWindow("UI_MainWindow") #shows window
def ObjectSelection(*args):
currentFormat = cmds.optionMenu("UI_FormatMenu", query=True, value=True)
print currentFormat
return currentFormat
по стоимости не возвращается, я имею в виду, что после того, как пользователь выбрал формат и нажмите кнопку оК, выбранный формат не является возвращен в «Obj ectSelection'. Однако при использовании 'cmds.optionMenu ('filmbackMenu', edit = True, value = ObjectSelection()), пользовательский интерфейс не появляется и просто использует первый элемент в меню в качестве выбора. Поэтому моя дилемма – dissidia
Я изменил ваш код, чтобы что-то проверить. Я отредактировал свой ответ. Когда вы нажмете хорошо, он обновит второй. Не уверен, что именно вы спрашиваете. Постарайтесь быть более точными, если это не так. – DrWeeny
Простите меня, если я не понял, я сделал небольшое редактирование на свой пост. В моей функции mainCode() между строками, которые содержат 'showUI' и' print ', был выбран формат «', я ожидаю, что мой код «остановится» здесь и дождитесь нажатия кнопки «ОК» в пользовательском интерфейсе (что означает, что был выбран формат) перед выполнением следующей строки кода. Вместо этого сценария мой код запускается от начала до конца, не заботясь о выборе пользовательского интерфейса, и выбор может выполняться до тех пор, пока код exec не будет выполнен. заканчивается. Он тоже делает то же самое с вашим кодом, начиная с конца до конца, не принимая выбор пользовательского интерфейса – dissidia