Maya 2018 Python + QT:查询导入的TextField的值

时间:2017-12-28 21:16:11

标签: python qt textfield maya

我一直关注This Tutorial在Maya插件中使用QT设计器中的.UI文件。它声明,为了在将UI加载到Maya之后查询QtextEdit字段的值,我需要执行以下操作:

  

所以现在当我们在maya中加载我们的QT Ui时,我们可以查询文本   每次我们想要使用以下行编辑我们的行   代码:

     

pm.textField('textFieldName', query = True, text = True)

然而,我似乎无法使其发挥作用。我按如下方式加载UI:

# Load our window and put it into a variable.
ebWin = cmds.loadUI(uiFile = self.BE_UIpath)

没有问题,当我尝试cmds.showWindow(ebWin)时,一切正常并且看起来完全符合预期。现在,当我尝试查询名为' exportDirectoryTF'的QtextEdit时,Maya坚持认为它不存在。我尝试了两种不同的方法:

接近A:

# Connect Functions to the buttons.
exportDir = ebWin.textField('exportDirectoryTF', query = True, text = True)

输出:

# Error: 'unicode' object has no attribute 'textField'
# # Traceback (most recent call last):
# #   File "C:/Users/Censored/Documents/maya/2018/plug-ins/EB_pi_cmds.py", line 39, in doIt
# #     exportDir = ebWin.textField('exportDirectoryTF', query = True, text = True)
# # AttributeError: 'unicode' object has no attribute 'textField'

并接近B:

import maya.cmds as cmds
# Connect Functions to the buttons.
exportDir = cmds.textField('exportDirectoryTF', query = True, text = True)

返回:

# RuntimeError: Object 'exportDirectoryTF' not found.
# # Traceback (most recent call last):
# #   File "C:/Users/Censored/Documents/maya/2018/plug-ins/EB_pi_cmds.py", line 39, in doIt
# #     exportDir = cmds.textField('exportDirectoryTF', query = True, text = True)
# # RuntimeError: Object 'exportDirectoryTF' not found. # 

教程有' pm.textField(' textFieldName',q = True,text = True)',我无法弄清楚&#34的位置; PM"来自,如果它应该指示加载UI或maya Python textField命令的变量,或两者都没有。

如果有人能指出我正确的方向,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

从您的代码中,您尝试执行 textField cmd时看不到它。以下代码对我来说很好。 test.ui只包含一个带有lineEdit字段的小部件,名为" lineEdit"。查询文本字段仅在窗口可见时才有效。如果您关闭窗口并尝试查询文本字段,则会找不到"找不到的对象"错误。

ui = "D:/temp/test.ui"
qtW = cmds.loadUI(uiFile = ui)
cmds.showWindow(qtW)
cmds.textField("lineEdit", query=True, text=True)