workbench的编写是我同事和我研究了FreeCAD源码中的例子总结出来的,网上关于这方面的资料很少,如果有错误请见谅
workbench 中的关键文件是InitGui.py,其中的主体部分有两个
1、class yournameworkbench(Workbench):
...... ---> 定义一个workbench
2、Gui.addWorkbench(yournameworkbench()) ---> 用于获取一个workbench实例,此后有且仅有一个实例
在1中我们可以定义一些菜单和命令,一般都是在一个固定的函数
def Initialize(self):
.... 中定义
顶层菜单和下拉菜单的创建:
menu = ["menuname"]
list = ["a module","b module"]
self.appendMenu(menu,list)
添加命令:
class operater:
def Activated(self):
.......
def GetResources(self):
return {''Pixmap' : 'Std_Tool1', 'MenuText': 'Example command', 'ToolTip': 'Very unimportand example command'}
# Pixmap: 图标 \ MenuText菜单中的文档 、 工具提示
将命令添加到Gui的command中
FreeCADGui.addCommand('oper',operater())
添加命令的形式可以是C++/C编写的使用SWiG转换为Python的库文件,也可以是其他的形式