Я пытаюсь сделать PySide Ui в Maya, глядя на разные примеры кодов, но мой не работает,
Проблема в том, что я получаю
#Traceback (most recent call last):
# File "maya console", line 69, in <module>
# File "maya console", line 32, in create
# File "maya console", line 61, in __init__
# File "maya console", line 65, in set_items
# TypeError: iteration over non-sequence #
Я читаю несколько тем об этой ошибке и, похоже, проблема, когда люди пытаются выполнить итерации по экземпляру, но, так как мои знания в объектно-ориентированном программировании все еще отсутствуют, я не понимаю, почему это происходит в моем сценарии.
from PySide2 import QtGui, QtCore, QtWidgets
from shiboken2 import wrapInstance
import maya.OpenMaya as om
import maya.OpenMayaUI as omui
import maya.cmds as cmds
import os, functools
def getMayaWindow():
pointer = omui.MQtUtil.mainWindow()
if pointer is not None:
return wrapInstance(long(pointer), QtWidgets.QWidget)
class testUi():
def __init__(self):
self.window = 'vl_test'
self.title = 'Test Remastered'
self.size = (1000, 650)
def create(self):
if cmds.window(self.window, exists=True):
cmds.deleteUI(self.window, window=True)
self.parentWindow = getMayaWindow()
self.mainWindow = QtWidgets.QMainWindow(self.parentWindow)
self.mainWindow.setObjectName(self.window)
self.mainWindow.setWindowTitle(self.title)
self.mainWidget = QtWidgets.QWidget()
self.mainWindow.setCentralWidget(self.mainWidget)
self.mainLayout = QtWidgets.QFormLayout(self.mainWidget)
testIk = test(self)
self.mainLayout.addWidget(testIk)
self.mainButton = QtWidgets.QPushButton()
self.mainLayout.addWidget(self.mainButton)
self.mainButton.clicked.connect(partial(self.load_selected))
self.mainWindow.show()
class test():
def __init__(self, maya_transform_nodes=[]):
qWid = QtWidgets.QWidget()
self.setMinW = qWid.setMinimumWidth(300)
self.setMinH = qWid.setMinimumHeight(300)
self.sss = qWid.setStyleSheet("border:1px solid rgb(0, 255, 0);")
self.items = []
self.transform_move = QtGui.QTransform()
self.transform_scale = QtGui.QTransform()
self.prev_mouse_pos = QtCore.QPoint(0, 0)
self.color = QtGui.QColor(0, 255, 50, 50)
self.clicked_color = QtGui.QColor(0, 255, 50, 150)
self.right_clicked_color = QtGui.QColor(255, 0, 0, 150)
if maya_transform_nodes:
self.set_items(maya_transform_nodes)
def set_items(self, maya_transform_nodes):
for path in maya_transform_nodes:
print path
v = testUi()
v.create()
Ожидаемый результат будет - я получаю окно с кнопкой, которая не работает и маленький виджет, который я написал в test ().