Создать диалоговое окно в Blender, используя C или Python
Как создать диалоговое окно (три варианта, например, quit/OK/Cancel) в blender и обработать текст, введенный через python или в C. Я не могу найти хорошего учебника по этому вопросу. Любая помощь....?
3 ответа
Быстрый и грязный способ - использовать команду zenity (должна быть включена по умолчанию в любой дистрибутив Python). Попробуйте этот короткий пример скрипта, он работает в моем Blender 2.69 на Ubuntu 14.04.
import bpy # bpy or bge does not matter
import subprocess as SP
# call an OS subprocess $ zenity --entry --text "some text"
# (this will ask OS to open a window with the dialog)
res=SP.Popen(['zenity','--entry','--text',
'please write some text'], stdout=SP.PIPE)
# get the user input string back
usertext=str(res.communicate()[0][:-1])
# adjust user input string
text=usertext[2:-1]
print("I got this text from the user: %s"%text)
Смотрите zenity --help для более сложных диалогов
Blender не предлагает такие вещи, как диалоги.
Ответы на этот предыдущий вопрос о внешних модулях могут быть полезны.
Класс DialogOperator(bpy.types.Operator)
bl_idname = "object.dialog_operator"
bl_label = "Save Before You QUIT!"
def execute(self, context):
message = " You didn't saved yet "
self.report({'INFO'}, message)
print(message)
return {'FINISHED'}
def invoke(self, context, event):
return context.window_manager.invoke_props_dialog(self)
класс DialogPanel(bpy.types.Panel)
bl_label = "Dialog"
bl_space_type = "VIEW_3D"
bl_region_type = "UI"
def draw(self, context):
self.layout.operator("object.dialog_operator")
Но это только для создания диалогового окна. После этого нужно вставить кнопки в этот код. Если кто-либо знает, попробуйте опубликовать ответ. В то же время я тоже пытаюсь разобраться в этом.