在Blender中创建错误对话框
我遇到一个问题,我需要在发生某些事情时弹出一个错误对话框。
我刚找到这篇文章: http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook/Code_snippets/Interface#An_error_dialog 但是我对代码不是很理解,我只想在屏幕上显示一个简单的错误对话框,这可能是一个例子:
if .....
then let the pop up with this message come up : " .... "
else ........
1 个回答
2
Blender使用操作符来执行各种动作或任务。在这个例子中,MessageOperator
是一个从bpy.types.Operator
继承的子类,负责显示对话框。当调用它的invoke()
方法时,它会通过wm.invoke_popup()
显示对话框,并把self
作为操作符传进去,这样就设置好了它的绘制功能,用来处理对话框中内容的显示。
接下来在scanFile
中,创建并调用了MessageOperator
,代码如下:
bpy.ops.error.message('INVOKE_DEFAULT',
type = "Error",
message = 'Found "return" on line %d' % n)
bpy.ops.error.message
是从bpy.ops
构建的,bpy.ops
是所有操作符的容器,后面跟着error.message
,这是在操作符类中通过bl_idname
定义的。传递的两个命名值被存储在类的属性type
和message
中,并在对话框显示时使用。
bpy.utils.register_class()
的调用用于在Blender的数据结构中注册这些新定义的类,以便可以使用它们。
Blender的使用习惯与大多数图形用户界面应用程序不同,它不使用弹出对话框。更常见的做法是通过操作符的report()
函数向用户传递通知或错误信息。这样会在Blender的顶部显示一个消息,旁边有个logo。