官方文档说明: https://www.electronjs.org/docs/latest/api/menu

    这里放一个我写的一个项目的菜单例子,用作参考

    1. app.on('ready', ()=>{
    2. createMainWindow() // 执行创建主窗口的一些动作
    3. createMenu() // 创建菜单
    4. })
    1. // 创建 menu
    2. function createMenu() {
    3. let menuStructure = [
    4. {
    5. label: '配置',
    6. submenu: [
    7. {
    8. label: '配置',
    9. click() {
    10. createConfigWindow()
    11. }
    12. },
    13. {
    14. label: '刷新', // 刷新页面
    15. click() {
    16. refreshWindows()
    17. }
    18. },
    19. {
    20. label: '打开调试窗口',
    21. click(menuItem, targetWindow) {
    22. targetWindow.openDevTools()
    23. }
    24. },
    25. {
    26. label: '关闭调试窗口',
    27. click(menuItem, targetWindow) {
    28. targetWindow.closeDevTools()
    29. }
    30. },
    31. ]
    32. },
    33. {
    34. label: '编辑',
    35. role: 'editMenu'
    36. },
    37. {
    38. label: '文件夹',
    39. submenu: [
    40. {label: '打开 Rime 配置文件夹', click() {shell.openPath(getRimeConfigDir())}},
    41. {label: '打开 Rime 程序文件夹', click() {shell.openPath(getRimeExecDir())}},
    42. {
    43. label: '打开工具配置文件夹', click() {
    44. let configDir = path.join(os.homedir(), CONFIG_FILE_PATH)
    45. shell.openPath(configDir)
    46. }
    47. },
    48. ]
    49. },
    50. {
    51. label: '码表处理工具',
    52. submenu: [
    53. {
    54. label: '码表处理工具',
    55. click() {
    56. showToolWindow()
    57. }
    58. },
    59. ]
    60. },
    61. {
    62. label: '关于',
    63. submenu: [
    64. {label: '最小化', role: 'minimize'},
    65. {label: '关于', role: 'about'},
    66. {type: 'separator'},
    67. {label: '退出', role: 'quit'},
    68. ]
    69. },
    70. ]
    71. let menu = Menu.buildFromTemplate(menuStructure)
    72. Menu.setApplicationMenu(menu)
    73. }

    效果如下:

    (六)应用菜单设置例子 - 图1