2015-09-09 5 views
0

Я пытаюсь выбрать объект и отобразить строки редактированиеPymel TypeError: файл <майа консоль>

из PySide импорта * от импорта pymel *
импорта pymel.core как вечер импорта maya.cmds в Cmds импорта maya.mel как Мэл импорта maya.OpenMaya как OpenMaya

def select_obj(obj): 
    list = pm.poly 
print obj 

button = QPushButton("select") 
button.clicked.connect(select_obj) 
button.show() 

def desselect_obj(obj): 
    list = OpenMaya.MSelection() 
print obj 

button2 = QPushButton("disconnect") 
button2.clicked.connect(select_obj) 
button2.show() 


edit = QLineEdit(nome) 
QLineEdit.show(select_obj) 
label.show() 

app.exec_() 

# Error: line 1: TypeError: file <maya console> line 25: 'PySide.QtGui.QLineEdit' called with wrong argument types: 
    PySide.QtGui.QLineEdit(function) 
Supported signatures: 
    PySide.QtGui.QLineEdit(PySide.QtGui.QWidget = No`enter code here`ne) 
    PySide.QtGui.QLineEdit(unicode, PySide.QtGui.QWidget = None) # 
# TypeError: select_obj() takes exactly 1 argument (0 given) 
+0

Этот код действительно не имеет смысла, можете ли вы опубликовать исправленную версию? – Achayan

ответ

1

Ваш код имеет много проблем. Вам не нужно импортировать много модулей (особенно тех, которые не используются). Как правило, при создании ui с PySide вы обертываете класс, который наследуется от QWidget или QMainWindow. Посмотрите на следующий код, это простой пример окна с кнопкой и lineEdit. Когда вы нажимаете кнопку, она добавляет имя выбранного объекта в строкуEdit.

from PySide import QtGui, QtCore 
import maya.cmds as cmds 

class Window(QtGui.QWidget): 
    def __init__(self, parent = None): 
     super(Window, self).__init__(parent) # Inherit from QWidget 

     # Create button 
     self.button = QtGui.QPushButton("select") 
     self.button.clicked.connect(self.select_obj) 

     # Create line edit 
     self.edit = QtGui.QLineEdit() 

     # Create widget's layout 
     mainLayout = QtGui.QVBoxLayout() 
     mainLayout.addWidget(self.button) 
     mainLayout.addWidget(self.edit) 
     self.setLayout(mainLayout) 

     # Resize widget, and show it 
     self.resize(200, 200) 
     self.show() 

    # Function to add selected object to QLineEdit 
    def select_obj(self): 
     sel = cmds.ls(sl = True) # Get selection 
     if sel: 
      self.edit.setText(sel[0]) # Set object's name to the lineEdit 

win = Window() # Create instance of the class