Electron中文文档

新手 685983304  中级 642625556 高级 602866851 Q群区别? 征集友情链接公告

推荐版:3.0.10   测试版:4.0.0-beta.8   极客版:4.0.0-nightly.20181010  

菜单项

添加菜单项到应用程序菜单和上下文菜单中

进程:主进程

有关示例, 请参见 Menu

new MenuItem(可选)

  • 参数 Object
    • click Function (可选) - 当菜单项被点击后,将会调用 click(menuItem, browserWindow, event)
    • role String (可选)-内置事件, 定义菜单项的行为, 当指定 click 属性时将被忽略。请参见 roles
    • type String (可选)-可以是 normal separator submenu checkbox radio
    • label String (可选)
    • sublabel String (可选)
    • acceleratorAccelerator (可选)
    • icon (NativeImage | String) (可选)
    • enabled Boolean (可选) - 如果为 false,该菜单项将会置灰且不可点击。
    • visible Boolean (可选)-如果为 false, 该菜单项将完全隐藏。
    • checked Boolean (可选)-只应为 checkbox radio 类型菜单项指定。
    • submenu (MenuItemConstructorOptions[] | Menu) (可选) - 只适用于submenu 类型的菜单项。 如果设置了 submenu , 则 type: 'submenu' 配置可以省略。 如果该值不是 Menu , 则它将自动使用 Menu. buildFromTemplate将其转换为Menu。
    • id String (可选)-在单个菜单中是唯一的。如果定义, 则可以通过它来引用该项。
    • position String (可选)-此字段允许对给定菜单中的特定位置进行 fine-grained(细粒度) 定义。

角色

可以通过角色来为menu添加预定义行为。

最好给任何一个菜单指定 role 去匹配一个标准角色, 而不是尝试在 click 函数中手动实现该行为。 内置的 role 行为将提供最佳的原生体验。

使用 role 时, label accelerator 值是可选的, 并为每个平台,将默认为适当值。

role 属性可以具有以下值:

  • undo
  • redo
  • cut
  • copy
  • paste
  • pasteAndMatchStyle
  • selectAll
  • delete
  • minimize - 最小化当前窗口。
  • close - 关闭当前窗口.
  • quit- 退出应用。
  • reload - 重新加载当前窗口。
  • forcereload - 忽略缓存,重新加载当前窗口。
  • toggledevtools - 在当前窗口中隐藏/显示开发者工具。
  • togglefullscreen- 将当前窗口切换全屏模式。
  • resetzoom - 将主页的缩放级别重置为初始大小.
  • zoomin - 主页面放大 10%.
  • zoomout -主页面缩小 10%.
  • editMenu-默认的 "编辑" 菜单 (包括撤消、复制等)
  • windowMenu -默认 "窗口" 菜单 (包括最小化、关闭等)

以下为macOS 中提供的角色:

  • about -映射到 orderFrontStandardAboutPanel 操作.
  • hide -映射到 hide 操作.
  • hideOthers -映射到 hideOtherApplications 操作.
  • unhide -映射到 unhideAllApplications 操作.
  • startSpeaking -映射到 startSpeaking 操作.
  • stopSpeaking -映射到 stopSpeaking 操作.
  • front -映射到 arrangeInFront 操作.
  • zoom -映射到 performZoom 操作.
  • toggleTabBar -映射到 toggleTabBar 操作.
  • selectNextTab - 映射到 selectNextTab 操作.
  • selectPreviousTab - 映射到 selectPreviousTab 操作.
  • mergeAllWindows - 映射到 mergeAllWindows 操作.
  • moveTabToNewWindow - 映射到 moveTabToNewWindow 操作.
  • window - 这个子菜单是"Window" 菜单.
  • help -这个子菜单是 "Help" 菜单.
  • services -这个子菜单是 "Services" 菜单.
  • recentDocuments -这个子菜单是 "Open Recent" 菜单.
  • clearRecentDocuments -映射到 clearRecentDocuments 操作.

在 macOS 上指定 role 时, label accelerator 是影响菜单项的唯一选项。 所有其它选项都将被忽略。 不过,仍然支持小写的role,如toggledevtools

Nota Bene: The enabled and visibility properties are not available for top-level menu items in the tray on MacOS.

实例属性

以下为 MenuItem 实例的可用属性:

menuItem.enabled

一个 Boolean 类型的值, 指示是否启用该项, 该属性可以动态改变

menuItem.visible

一个 Boolean 类型的值, 指示该项是否可见, 该属性可以动态改变。

menuItem.checked

一个 Boolean 类型的值, 指示是否选中该项, 该属性可以动态改变。

checkbox 菜单项将在选中时切换 checked 的开关属性。

单选菜单项 将返回单击时checked属性, 并将关闭同一菜单中所有相邻项的属性。

你可以为其他行为添加click函数。

menuItem.label

一个表示菜单项标签的 String.

menuItem.click

当 MenuItem 接收到 click 事件时激发的Function.



相关npm包集合




相关站点资源





官方指南

常见问题 (FAQ)

指南和教程

详细教程

API 参考

自定义 DOM 元素:

主进程可用的模块:

渲染进程(网页)可用的模块:

两种进程都可用的模块:

开发

  • electron-vue 开发过程中的几个常见问题的解决方案
  • 对比理解 electron 中的 path.jon 和 path.resolve
  • JS开发者社区

    和大家在一起

    新手/1元新手 685983304 
    中级/5元 中级 642625556
    高级/50元 高级 602866851