【发布时间】:2010-09-28 16:20:27
【问题描述】:
我在 Autodesk Maya 中开发工具。我构建的许多工具都有简单的窗口 GUI 供动画师和建模师使用。这些 GUI 通常包含您通常希望在任何基本窗口中看到的内容;标签、列表、菜单、按钮、文本字段等。但是,您可以使用可用工具构建的 UI 的复杂性受到限制,特别是可用小部件的类型。
我有兴趣使用一些更高级的 wxPython 小部件,例如 ListView(网格)、Tree 等。这将涉及使用完整的 wxFrame(窗口)来显示整个 UI,这实际上意味着该窗口将不再与玛雅联系在一起。不是破坏交易,但这意味着当 Maya 最小化时,窗口不会效仿。
我之前用 tkinter 作为测试尝试过类似的事情,但发现它需要一个 MainLoop 才能在自己的线程中运行。这是合乎逻辑的,但在我的情况下,它与 Maya 自己的线程冲突,基本上使 Maya 挂起,直到窗口关闭。这是因为 Maya 在主 Maya GUI 共享的单个线程中运行所有脚本,无论是 MEL 还是 Python。这是为了防止一个脚本在另一个脚本尝试处理同一个对象时删除一个对象。
wxPython 也有同样的“mainloop”方法。我想知道是否有任何方法可以让它在 Maya 中工作?
【问题讨论】:
标签: python scripting wxpython wxwidgets maya