3dsMax PySide 控件键盘输入问题
# 3dsMax_PySide 输入控件焦点问题
提示
用 PySide 或是 PySide2 在3ds Max 里创建的输入类型的 UI 控件时,会有键盘输入问题,例如 QtGui.QLineEdit 单行可输入文本框,可能会遇到输入焦点虽然在控件上,但是MAX却也在接受输入,用户按键输入不会转移到你的控件上,无法正常用键盘输入内容。
这个时候,就需要禁用max 的的输入,直到控件输入完成。
如下这个简单案例。
self.lineEdit_accode = QtGui.QLineEdit(self)
self.lineEdit_accode.setObjectName(_fromUtf8("lineEdit_accode"))
解决方法就是重新定义 QLineEdit 对象的 焦点出入事件,当焦点进入 控件时,禁用max 的按键输入,当焦点离开时 启用 max 输入。
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 无上述焦点问题