Hi guys! I am doing simple UI for choosing textures for two nodes in the shader and I can't make the optionMenu command to work one by one with the same source for the both optionMenu1 and optionMenu2. I have one directory to choose and need two similar lists where user can choose the texture file and apply it on two different nodes. So far I am interested only in understanding how to make both of the optionMenus work with one folder button:
import maya.cmds as cmds from os import listdir class AK_TextureLink(object): def __init__(self): self.window = 'ShaderWindow' self.title = 'Layered Shader Window' self.size = (600, 250) self.createWindow() def createWindow(self): if cmds.window(self.window, exists = True): cmds.deleteUI(self.window, window = True) self.window = cmds.window(self.window, title = self.title, widthHeight = self.size) self.mainForm = cmds.formLayout(numberOfDivisions = 100); self.titleDisplay = cmds.text(label = self.title, align="center", font = 'boldLabelFont') cmds.formLayout(self.mainForm, edit = True, attachForm=( [self.titleDisplay, 'top', 5], [self.titleDisplay, 'left', 5], [self.titleDisplay, 'right', 5] )) self.titleSeparator = cmds.separator(); cmds.formLayout(self.mainForm, edit=True, attachControl = [self.titleSeparator, 'top', 10, self.titleDisplay], attachForm = ([self.titleSeparator, 'left', 5], [self.titleSeparator, 'right', 5] )) #creating the button for folder choice self.btnFolderSet1 = cmds.button(label='Set Texture Folder', height=30, width=150, command=self.SetFolderBtnCmd1) cmds.formLayout(self.mainForm, edit=True, attachControl = [self.btnFolderSet1, 'top', 30, self.titleDisplay], attachForm = [self.btnFolderSet1, 'left', 5]) #the first list which i want to work with folder choice button self.firstTextureList = cmds.optionMenu('optionMenu1',label="First File List") cmds.formLayout(self.mainForm, edit=True, attachControl = [self.firstTextureList, 'top', 30, self.btnFolderSet1], attachForm = [self.firstTextureList, 'left', 5]) #the second list which is working with folder button self.secondTextureList = cmds.optionMenu('optionMenu2',label="Second File List") cmds.formLayout(self.mainForm, edit=True, attachControl = ([self.secondTextureList, 'top', 30, self.btnFolderSet1], [self.secondTextureList, 'left', 20, self.firstTextureList])) self.btnApplyShader = cmds.button(label='Apply Shader', height=30, width=150, command=self.applyShaderBtnCmd) cmds.formLayout(self.mainForm, edit=True, attachControl = [self.btnApplyShader, 'top', 20, self.firstTextureList], attachForm = [self.btnApplyShader, 'left', 5]) cmds.showWindow() def SetFolderBtnCmd1(self, *args): print 'button pressed' basicFilter = "Image Files (*.jpg *.jpeg *.tga *.png *.tiff *.bmp *.psd)" self.myDir = cmds.fileDialog2 (fileFilter=basicFilter, dialogStyle=2, fm=3) myFiles = listdir(self.myDir[0]) for items in myFiles: fileEndings = ('.psd','.PSD','.jpg','JPG','.jpeg','.JPEG','.tga','.TGA','.png','.PNG','.tiff','.TIFF','.bmp','.BMP') if items.endswith(fileEndings): cmds.menuItem(items) else: cmds.warning(items + 'This is not a valid image type, you fool.') print myFiles def applyShaderBtnCmd(self, *args): print 'shader button pressed' myTextureRelink = AK_TextureLink() Thank you! -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/56aac8d9-9eaa-47a9-a8e4-f81c6bb70e57n%40googlegroups.com.