所以有几行代码可以说,如果我在“脚本编辑器”中运行它,它将可以正常工作,但是如果它从PySide2获得相同的文本,则将无法正常工作。
让我们说您在输入中输入了“ a#↑”。它会打印“ a”和“#”,但不会打印“↑”,而是打印“无法识别”。这仅发生在Maya中,而不是Windows中。我很困惑。
# -*- coding: utf-8 -*-
from PySide2 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(165, 125, 75, 23))
self.pushButton.setObjectName("pushButton")
self.plainTextEdit = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit.setGeometry(QtCore.QRect(30, 10, 341, 96))
self.plainTextEdit.setInputMethodHints(QtCore.Qt.ImhNone)
self.plainTextEdit.setObjectName("plainTextEdit")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
self.pushButton.clicked.connect(self.printIt)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "Test"))
def printIt(self):
text = self.plainTextEdit.toPlainText()
for i in text:
if i == "a":
print ('a is printed')
elif i == "#":
print ('# is printed')
elif i == "↑":
print ('↑ is printed')
else:
print ('not recognized')
if __name__ == "__main__":
import sys
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
但是以这种形式可以正常工作:
text = 'a#↑'
for i in text:
if i == "a":
print ('a is printed')
elif i == "#":
print ('# is printed')
elif i == "↑":
print ('↑ is printed')
else:
print ('not recognized')
答案 0 :(得分:0)
因此,这就是“脚本编辑器”的问题。感谢Autodesk论坛中的@zewt,他为此提供了一种解决方案。如果您导入包含该代码的文件,而不仅仅是在脚本编辑器中直接运行该代码,那么它将起作用。
这是指向his solution
的链接