3dsMax PySide 控件键盘输入问题
# 3dsMax_PySide 控件焦点问题
提示
用 PySide 或是 PySide2 在3ds Max 里创建的UI控件时,会有键盘输入焦点问题,例如 QtGui.QLineEdit 单行可输入文本框,假如你是直接创建的 ,键盘的焦点一直在MAX,不会转移到你的UI上,这样不管你是怎么按都无法正常用键盘输入。
如下这个简单案例。
self.lineEdit_accode = QtGui.QLineEdit(self)
self.lineEdit_accode.setObjectName(_fromUtf8("lineEdit_accode"))
解决方法就是重新定义 QLineEdit 这个类
class SuperQLineEdit(QtGui.QLineEdit):
def focusInEvent(self, event):
MaxPlus.CUI.DisableAccelerators()
super(SuperQLineEdit, self).focusInEvent(event)
def focusOutEvent(self, event):
MaxPlus.CUI.EnableAccelerators()
super(SuperQLineEdit, self).focusOutEvent(event)
然后创建时用新类即可
self.lineEdit_accode = SuperQLineEdit(self)
self.lineEdit_accode.setObjectName(_fromUtf8("lineEdit_accode"))
MAX2021 无上述焦点问题