0

如何在搅拌机中制作一个对话框(三个选项,如退出/确定/取消)并处理通过 python 或 C 输入的文本。我找不到任何好的教程。有什么帮助……?

4

3 回答 3

1

一种快速而肮脏的方法是使用 zenity 命令(默认情况下应该包含在任何 python 发行版中)。试试这个简短的示例脚本,它适用于我在 Ubuntu 14.04 上的 Blender 2.69。

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

于 2015-03-25T09:30:00.327 回答
0
class 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)

class 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")

但这仅用于创建对话窗口。在此之后必须在此代码中插入按钮。如果有人知道这一点,请尝试发布答案。同时我也在努力解决这个问题。

于 2013-10-25T05:04:43.453 回答
0

blender 不提供对话框之类的功能。

上一个关于外部模块的问题的答案可能会有所帮助。

于 2013-10-24T07:31:36.323 回答