2016-05-16 70 views
0

我正在为使用Python的Blender创建一个插件,需要用户进行一些确认。 我已经做了这样一个用于Windows的工作代码,东西:Linux中的消息框(开箱即用)

from ctypes import * 

user32 = windll.user32 
Answer = user32.MessageBoxW(None, 'some question here', 'title', 4 | 0x40) 

if Answer==6: 
    print('You choose YES') 
else: 
    print('You choose NO') 

不幸的是(显然),它不会在Linux下工作。 我读了关于使用Tkinter可能是一个解决方案,但它尚未安装在Linux上,我更喜欢使用一个解决方案,不需要以前安装包。

某人colud建议Linux(或跨平台)解决方案?

谢谢

+0

https://en.wikipedia.org/wiki/Zenity从bash脚本的[设置子 –

+0

可能重复调用它](http://stackoverflow.com/questions/8354482/dialog-from-bash-script)(阅读所有的答案)。 –

+0

正如我已经写道,我正在寻找一个解决方案,不需要以前安装包。 –

回答

1

搅拌机的默认安装不包括python的整个默认构建。打包混合器版本进行分发时,不包括python模块(包括tkinter)的列表。你可以找到确切的清单here。您可能会对this example中使用的某些窗口管理器方法(如invoke_props_dialog)感兴趣,但通常这些方法不适用于您应该使用的方式。

有两种常见的方法可以从用户获取变量输入。第一个属性可以由用户根据自己的选择进行调整,然后在脚本运行时使用。另一种方式是通过运营商属性。

属性可以be added某些现有的类别,并显示在panels供用户编辑。

在搅拌器中执行的操作(例如,当用户按下某些键,单击按钮或选择菜单项时)由操作员执行。操作员拥有改变其操作结果的属性是很常见的。例如,当您添加UV球体并按F6时,您可以调整球体的几何形状以及其大小和位置。这些属性也可以在toolshelf区域的底部找到。

uvsphere options

this example所示,可以将属性添加到您的运营商级和这些属性可以由用户一样在紫外线球例子来进行调整。您还可以指定值,当你把一个按钮,用于用户单击 -

def draw(self, context): 
    row = self.layout.row() 
    row.operator('object.example_operator', text='go with 6').choice = 6