2014-09-08 3 views
1

je suis un problème, je dois laisser une boîte de dialogue d'erreur de venir quand il arrive quelque choseCréer une erreur de dialogue dans Blender

Je viens de découvrir ce artikle: http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook/Code_snippets/Interface#An_error_dialog , mais je ne comprends pas vraiment le code, je viens besoin de mettre un simple, dialogue d'erreur sur l'écran, cela peut être l'exemple:

if ..... 
then let the pop up with this message come up : " .... " 
else ........ 

Répondre

1

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 scanFileMessageOperator 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.

Questions connexes