# 为动作设计自定义右键菜单 注:Quicker1.8.3以后的版本支持此功能。 # 概述 当动作功能变得更强大之后,通常会面临2个设计问题: 1. 如何进入配置界面,让使用者方便的自定义一些个性化信息? 2. 动作提供多个功能或模式,如何在启动动作时确定运行哪个功能? 在1.8.3版本之前,动作作者大概会使用这些办法: - 在动作操作界面的菜单中增加功能选项。(如文本窗口的菜单、用户选择的选项或菜单等) - 在启动时检查键盘状态,根据是否按下了某个控制键(如ctrl),决定进入参数配置功能还是正常运行动作。 在1.8.3版本中,Quicker增加了给动作自定义右键菜单的功能。基本原理是这样: - 点击菜单时,运行动作并给动作传递某个特定的参数。 - 在动作中判断参数变量quicker_in_param的值,根据对应的菜单项执行某个操作。 ![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1591800181066-c1a0bb77-95b8-431f-83b1-4208a93652ad.png#averageHue=%23efeeee&height=240&id=bVDfs&originHeight=480&originWidth=813&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64623&status=done&style=none&title=&width=406.5) # 定义菜单 菜单数据在动作编辑窗口的“选项”区域。
![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1591800781031-49d6b92d-ca5b-4809-9ecc-0a054e7b69d3.png#averageHue=%23efedec&height=273&id=Nr9Yi&originHeight=546&originWidth=850&originalType=binary&ratio=1&rotation=0&showTitle=false&size=59854&status=done&style=none&title=&width=425)
输入框比较小,如果需要输入较多内容,可以在输入框上右键,选择“在编辑器中修改”。
![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1591800906237-17d997ba-6fd6-44f8-8c30-1cfe060f1b61.png#averageHue=%23eeecea&height=108&id=OyT8A&originHeight=216&originWidth=499&originalType=binary&ratio=1&rotation=0&showTitle=false&size=20375&status=done&style=none&title=&width=249.5) ## 格式说明 1. 每行定义一个菜单项; 2. 4个斜线开始的内容(////),作为注释忽略; 3. 使用4个半角短横线(----)添加分割线; 4. 每个菜单项的内容分为2个主要部分,中间使用竖线“|”分隔。 1. 前半部分定义菜单的外观; 2. 后半部分定义要给动作传递的参数; 3. 例子:[fa:Light_Flag]菜单标题(tooltip内容)**|**_qk_menu_icon_menu 5. 外观部分可以包含图标、标题和鼠标悬浮在菜单上时显示的Tooltip信息。其中图标信息和tooltip信息是可选的。 1. 图标信息:**[fa:_图标名称_] ** 图标将以默认颜色显示(为和quicker内置右键菜单区别,动作图标默认使用绿色显示)。 2. 如果需要对某些具有一定风险或需要突出显示的图标指定自定义颜色,也可以使用 **[fa:图标名:#RRGGBB]** 这样的格式。 3. 图标名称可以在编辑器中右键选择“插入图标名菜单”后选择。 ![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1591801726638-e609fc8d-a6d2-4dd7-8418-1943770442a7.png#averageHue=%23f2f0ee&height=112&id=HSoh3&originHeight=224&originWidth=580&originalType=binary&ratio=1&rotation=0&showTitle=false&size=26307&status=done&style=none&title=&width=290) 6. 动作参数尽量使用较为特殊的内容,避免和正常使用动作时传入的参数冲突。如果有多个菜单项,也可以考虑为参数加入相同的前缀,从而方便在动作中根据前缀执行某个分支的步骤。 ### 多级菜单 **缩进方式设置**(自1.36.7版本支持)
使用空格或tab缩进表示子菜单(空格或tab不能混用,同一级别对齐)。
示例: ``` [fa:Light_Cog:#FF0000]设置 [fa:Light_Cog:#FF0000]设置项1|参数值1 [fa:Light_Cog:#FF0000]设置项11|参数值11 [fa:Light_Cog:#FF0000]设置项2|参数值2 [fa:Light_Cog:#FF0000]设置项21|参数值21 ``` 对应的菜单:
![image.png](https://cdn.nlark.com/yuque/0/2022/png/272392/1668610735109-0de4956b-5107-489d-b925-87c36d59c2bc.png#averageHue=%23f4f3f3&clientId=u8e1dfc23-4e95-4&from=paste&height=135&id=u955c7034&originHeight=222&originWidth=731&originalType=binary&ratio=1&rotation=0&showTitle=false&size=27551&status=done&style=none&taskId=ua9ea368b-b460-4860-b98e-fa0d1722bd3&title=&width=443.0302774238426) **符号标记格式**
【1.36.7之前版本】如果需要定义二级菜单: 1. 在父菜单的最前面加入 **[+]** 2. 在该父菜单下面的子菜单项的最前面加入 **[-]** 例子(网址[https://getquicker.net/sharedaction?code=85e2fa76-4bfb-4e1b-aa78-08d80d33b91a](https://getquicker.net/sharedaction?code=85e2fa76-4bfb-4e1b-aa78-08d80d33b91a)): ``` ////注释内容 无图标菜单|_qk_menu_no_icon 带Tooltip的菜单(tooltip内容)|_qk_menu_tooltip [fa:Light_Flag]带图标的菜单(tooltip内容)|_qk_menu_icon_menu [+][fa:Light_Cog]二级菜单(提示内容...) [-][fa:Light_UserCircle]子菜单|_qk_menu_submenu [fa:Light_Wrench:#f57e42]危险动作菜单(tooltip内容)|_qk_menu_sample ``` 对应的菜单:
![](https://cdn.nlark.com/yuque/0/2020/png/272392/1591792990896-03ce30ff-7be1-4a24-b913-9a69989eee14.png#averageHue=%23f3f2f2&height=205&id=Kk1GM&originHeight=402&originWidth=780&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=&width=397) ## 在动作中判断菜单 使用“如果”模块,判断动作参数的值是否为某个菜单项的参数值:
![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1591802146881-5e20c705-3c78-471a-99e3-d28cebeb9cc2.png#averageHue=%23fcfcfc&height=158&id=XX5xM&originHeight=315&originWidth=1164&originalType=binary&ratio=1&rotation=0&showTitle=false&size=24407&status=done&style=none&title=&width=582)
如果是的话,就执行对应的操作即可。 # 定义变化的右键菜单项 如果有些右键菜单项需要根据动作的工作模式变化,可以通过“[状态存取](https://www.yuque.com/quicker/help/statestorage#4pqBW)”模块来设置。 # 调试右键菜单项 **方式1:**按右侧Shift键点击菜单项,可以启动调试运行模式。
![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1596246473421-c70ead6f-911d-4fba-8f8c-c34844ab67f7.png#averageHue=%23f5f2f2&height=191&id=yS0sI&originHeight=382&originWidth=841&originalType=binary&ratio=1&rotation=0&showTitle=false&size=50035&status=done&style=none&title=&width=420.5) **方式2:**创建一个新的动作,在动作中使用“运行其他动作”模块,指定要传递的参数内容和是否启动调试模式。
![image.png](https://cdn.nlark.com/yuque/0/2020/png/272392/1596246306676-72ca043f-7f38-44a1-8c75-d7dd949bf314.png#averageHue=%23faf7f6&height=262&id=MYlcE&originHeight=523&originWidth=923&originalType=binary&ratio=1&rotation=0&showTitle=false&size=67087&status=done&style=none&title=&width=461.5) 如果需要连续编辑调试,可以在动作编辑窗口中 按Ctrl+点击保存,可以只保存不关闭编辑窗口。 [
](https://getquicker.net/sharedaction?code=ea84295f-a89f-4eed-2181-08d87f35f7db) # 使用菜单 在动作上右键,选择对应菜单项即可。
按**右侧Shift**的同时点击菜单项,可以使用调试模式运行。 # 相关内容 - 状态存储:在用户计算机保存状态信息 - [状态存取模块](https://www.yuque.com/quicker/help/statestorage) - 将变量设置为作为状态使用:保存变量的值到本地,下次运行时自动加载。 - [云状态存取](https://www.yuque.com/quicker/help/clouddata):将内容保存到网络,在需要的时候读取。 - [多字段表单](https://www.yuque.com/quicker/help/form):通常用于设计动作参数设置界面。 来自网友@瓜皮之牙的右键菜单示例:
[https://getquicker.net/Sharedaction?code=862a746e-35d8-4d6f-3efe-08d97ef43193](https://getquicker.net/Sharedaction?code=862a746e-35d8-4d6f-3efe-08d97ef43193)
[https://getquicker.net/Sharedaction?code=20d89403-3c40-480d-394f-08d98bd92463](https://getquicker.net/Sharedaction?code=20d89403-3c40-480d-394f-08d98bd92463)
瓜皮的自定义右键菜单入门教程(通俗易懂):[https://getquicker.net/Guides/Guide?id=9260b229-c617-42f5-378b-08da75b5e519&step=54f7f144-58a1-43c5-a41d-08da7756e1a7](https://getquicker.net/Guides/Guide?id=9260b229-c617-42f5-378b-08da75b5e519&step=54f7f144-58a1-43c5-a41d-08da7756e1a7) # 更新历史 - 1.36.7 支持缩进方式。 - 增加瓜皮分享的入门教程网址和示例动作。