Je suis en train d'écrire une interface utilisateur en python pour 3DS Max 2018 et je ne peux pas avoir de saisie de texte, bien que tout ce que j'ai essayé jusqu'à présent fonctionne bien. Il ne semble tout simplement pas lire les frappes pour une raison quelconque. Ils sont enregistrés par Max à la place, ce qui fait les choses appropriées comme le lancement de l'éditeur de matériel quand j'appuie sur 'm' au lieu de taper un 'm'. J'ai essayé d'imprimer des pressions sur les touches et ça ressemble à du contrôle, du changement et de l'alternance. J'ai même essayé d'exécuter les exemples de scripts fournis avec Max et j'ai eu la même erreur, donc je réalise qu'il s'agit probablement d'un bug, mais je ne crois pas qu'Autodesk l'ait corrigé en ce moment, donc je suis à la recherche d'un solution de contournement ...3DS Max 2018 Pyside2 - L'entrée de texte ne fonctionne pas
Voici un exemple pour les tests:
from PySide2 import QtWidgets, QtCore, QtGui
import MaxPlus
import os
class SampleUI(QtWidgets.QDialog):
def __init__(self, parent=MaxPlus.GetQMaxMainWindow()):
super(SampleUI, self).__init__(parent)
self.initUI()
def initUI(self):
self.testBtn = QtWidgets.QPushButton("Test")
mainLayout = QtWidgets.QHBoxLayout()
testBox = QtWidgets.QLineEdit("Test!")
mainLayout.addWidget(testBox)
self.setLayout(mainLayout)
if __name__ == "__main__":
try:
ui.close()
except:
pass
ui = SampleUI()
ui.show()
Ceci est une solution assez propre, il suce juste que vous devez sous-classer chaque widget. Cependant, j'ai été en contact avec Autodesk et ils m'ont donné accès à une excellente fonction qui résout complètement ce "bug" et devrait être dans la prochaine version. Je ne sais pas comment ça ne l'a pas fait dans la première version, mais je suppose que c'est l'inconvénient d'un déploiement annuel! – Spencer