Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类可以';找不到我指定的属性(PySide,Maya)_Python_Pyqt_Pyside_Maya - Fatal编程技术网

Python 类可以';找不到我指定的属性(PySide,Maya)

Python 类可以';找不到我指定的属性(PySide,Maya),python,pyqt,pyside,maya,Python,Pyqt,Pyside,Maya,我经常学习Python/PySide for Maya,今天我尝试用PySide制作一个类 我正在尝试制作一个里面有空列表的窗口。我已经用常用的Maya UI命令完成了相同的代码结构,并且工作正常 但当我尝试对PySide执行相同操作时,我得到了AttributeError:'VL_Test'对象没有属性'ui_fk'错误 我错过了什么 代码: 我想您只是在这些变量之前丢失了一些selffkStrandGroupBoxfkStrandLayoutfkListWidget 我在Maya 2017中

我经常学习Python/PySide for Maya,今天我尝试用PySide制作一个类

我正在尝试制作一个里面有空列表的窗口。我已经用常用的Maya UI命令完成了相同的代码结构,并且工作正常

但当我尝试对PySide执行相同操作时,我得到了
AttributeError:'VL_Test'对象没有属性'ui_fk'
错误

我错过了什么

代码:


我想您只是在这些变量之前丢失了一些
self
fkStrandGroupBox
fkStrandLayout
fkListWidget

我在Maya 2017中运行它,看起来还可以

import maya.cmds as cmds
import maya.OpenMayaUI as omui

try:
    from PySide import QtCore, QtWidgets, QtGui
    from shiboken import wrapInstance
except:
    from PySide2 import QtCore, QtWidgets, QtGui
    from shiboken2 import wrapInstance


def getMayaWindow():
    pointer = omui.MQtUtil.mainWindow()
    if pointer is not None:
        return wrapInstance(long(pointer), QtWidgets.QWidget)


class VL_Test(object):
    def showUI(cls):
        win = cls()
        win.create()
        return win

    def __init__(self):
        self.window = 'vl_test'
        self.title = 'Test Remastered'
        self.size = (1000,650)
        self.supportsToolAction = False
        self.actionName = 'Create and Close'
        self.applyName = 'Create'
        self.closeName = 'Close'

    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)
        QtWidgets.QStyleFactory.create('Windows')
        self.mainLayout = QtWidgets.QHBoxLayout(self.mainWidget)
        self.ui_fk()

        self.mainWindow.show()

    def ui_fk(self):
        self.fkStrandGroupBox = QtWidgets.QGroupBox('FK Joints:')
        self.fkStrandLayout = QtWidgets.QHBoxLayout()
        self.mainLayout.addWidget(self.fkStrandGroupBox)
        self.fkStrandGroupBox.setLayout(self.fkStrandLayout)

        self.fkListWidget = QtWidgets.QListWidget()
        self.fkStrandLayout.addWidget(self.fkListWidget)

        # test
        self.fkListWidget.addItems(['a', 'b', 'c'])

testWindow = VL_Test()
testWindow.create()


而且,如果您使用
PySide
,不要添加
qtwidkets
,因为PySide没有
qtwidkets

我更喜欢使用
import*
,因为我很懒

try:
    from PySide.QtGui import *
    from PySide.QtCore import *
    from shiboken import wrapInstance
except:
    from PySide2.QtCore import *
    from PySide2.QtGui import *
    from PySide2.QtWidgets import *
    from PySide2.QtUiTools import *
    from shiboken2 import wrapInstance
<>如果你考虑兼容性,你可以试试这个。

您确定缩进正确吗。有时当我在定义时缩进太远或不够远时会发生这种情况。我检查了几次。这看起来不像缩进问题。我确认这听起来像是缺少缩进。我不喜欢maya,所以我无法尝试:/
try:
    from PySide.QtGui import *
    from PySide.QtCore import *
    from shiboken import wrapInstance
except:
    from PySide2.QtCore import *
    from PySide2.QtGui import *
    from PySide2.QtWidgets import *
    from PySide2.QtUiTools import *
    from shiboken2 import wrapInstance