将可定制的工具菜单附加到napari
项目描述
napari-tools-menu
将可定制的工具菜单附加到napari
用法
只需将napari-tools-menu添加到您的napari-plugin依赖中。之后,您可以使用以下语法注释您的函数和停靠小部件。指定的菜单路径将用于将您的工具放在工具菜单的正确位置。所有菜单和子菜单都将按字母顺序列出。
from napari_tools_menu import register_function, register_action, register_dock_widget
@register_action(menu="Utilities > Action")
def test_function(viewer):
print("hello")
@register_function(menu="Utilities > Function")
def test_function_with_params(sigma: float = 0.5):
print("sigma", sigma)
@register_dock_widget(menu="Utilities > Widget")
class ExampleQWidget(QWidget):
def __init__(self, napari_viewer):
register_function
和 register_dock_widget
注解是为 分析函数 和 图形用户界面 设计的,如 napari-plugin教程 中所述。 register_action
注解是为只有一个参数的函数设计的:napari viewer
。当用户点击菜单时,将执行此函数。例如,这可以用于对当前所有选定的层应用某种操作。
注意:此实现基于对napari的猴子补丁,已在napari 0.4.11上测试。因此,它可能无法与napari的将来版本一起工作,例如,当新的插件引擎完成时。目前,它是简化最终用户生活的美好替代方案。
菜单名称建议
为了保持工具菜单的整洁和组织,应提出一些建议。创建分类菜单,以便您的工具以某种方式分类,使广大受众了解其功能。示例
- 滤波/噪声去除
- 滤波/背景去除
- 滤波/边缘增强
- 滤波/反卷积
- 图像数学
- 配准
- 分割/二值化
- 分割/标记
- 分割后处理
- 测量
- 可视化
- 实用工具
首先在菜单名称中放入描述性函数名,然后是实现方式。示例
- 分割/二值化 > 阈值(Otsu等1979年)
- 分割/二值化 > 阈值(我的算法)
- 分割/标记 > 细胞标记(CellLab)
- 分割/标记 > 核分割(Nuc-Seg)
示例代码
@register_action(menu="Segmentation > Threshold (Otsu et al 1979)")
def threshold_otsu(viewer):
pass
@register_action(menu="Segmentation > Threshold (my algorithm)")
def my_algorithm(viewer):
pass
@register_action(menu="Segmentation > Cell labeling (CellLab)")
def celllab(viewer):
pass
@register_action(menu="Segmentation > Nuclei segmentation (Nuc-Dect)")
def nucl_dect(viewer):
pass
菜单将看起来像这样:
再次强调,没有限制。然而,请尽量保持菜单井然有序,以便用户使用方便。
安装
您可以通过 pip 安装 napari-tools-menu
pip install napari-tools-menu
贡献
我们非常欢迎贡献。可以使用 [pytest] 运行测试,请在提交拉取请求之前确保覆盖率至少保持不变。
许可协议
在 BSD-3 许可证下分发,"napari-tools-menu" 是免费和开源软件
问题
如果您遇到任何问题,请提交问题,并附上详细的描述。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
napari-tools-menu-0.1.19.tar.gz (7.4 kB 查看哈希值)