Blender utilise des opérateurs pour effectuer des actions ou des tâches, dans cet exemple, le MessageOperator
est une sous-classe bpy.types.Operator
qui prend soin d'afficher la boîte de dialogue . Quand il est invoke()
est appelé il montre la boîte de dialogue avec wm.invoke_popup()
en passant self
en tant qu'opérateur, qui définit sa fonction dessiner pour gérer l'affichage du contenu de la boîte de dialogue.
Plus tard dans la scanFile
MessageOperator
est créé et appelé avec
bpy.ops.error.message('INVOKE_DEFAULT',
type = "Error",
message = 'Found "return" on line %d' % n)
Le bpy.ops.error.message
est construit à partir bpy.ops
que le conteneur de tous les opérateurs suivis par error.message
qui est définie par bl_idname
dans la classe d'opérateur. Les deux valeurs nommées qui sont passées sont stockées dans les propriétés de classe type
et message
et sont utilisées lorsque la boîte de dialogue est affichée.
Les appels bpy.utils.register_class()
sont utilisés pour enregistrer ces classes nouvellement définies dans la structure de données de Blender afin qu'elles puissent être utilisées.
La convention d'utilisation de Blender n'utilise pas les boîtes de dialogue contextuelles comme celles de la plupart des applications GUI. Il est plus commun de transmettre des notifications ou des messages d'erreur à un utilisateur en utilisant les opérateurs report()
function. Ceci affiche un message dans l'en-tête de Blender à côté du logo.