如何为INAV Configurator新增一个配置页签:开发者完整指南(附代码示例)

发布时间:2026/10/31 1:27:51

如何为INAV Configurator新增一个配置页签:开发者完整指南(附代码示例) 【免费下载链接】inav-configurator项目地址https://gitcode.com/gh_mirrors/ina/inav-configurator点击查看免费下载INAV Configurator 是开源飞控软件 INAV 的桌面配置工具基于 Electron 开发。如果你想为它新增一个配置页签Tab本文会带你走通从页面文件、导航入口、动态加载注册到国际化文案的完整流程并给出关键代码示例。一、先看懂 INAV Configurator 的页签架构INAV Configurator 的每个功能页签都由三个部分协作完成理解这个架构是动手的前提组成部分文件位置职责导航入口index.html侧边栏li classtab_xxx列表切换分发js/configurator_main.js点击页签后动态import()对应 JS页面实现tabs/ 目录每个页签一对.html.js文件其中 js/gui.js 维护着defaultAllowedTabsWhenConnected连接飞控后可用页签和defaultAllowedTabsWhenDisconnected未连接时可用页签两个白名单TABS对象js/gui.js则是所有页签模块的注册中心。页签名称由导航条目的 class 去掉tab_前缀得到见 js/configurator_main.js 中的tabClass.substring(4)所以class 名必须和 JS 文件名、switch 分支三者严格一致。二、本地运行项目开发环境一键搭建先克隆仓库并启动开发环境改动后刷新窗口即可看到效果git clone https://gitcode.com/gh_mirrors/ina/inav-configurator cd inav-configurator yarn install npm start项目使用 Vite Electron Forge 构建见 package.json启动后即可看到如下启动画面三、新增页签五步法以mytab为例第 1 步创建页面文件tabs/mytab.html和tabs/mytab.js以简单页签 tabs/search.html 为参考HTML 负责界面骨架div classtab-mytab div classcontent_wrapper div classoptions-section gui_box grey div classgui_box_titlebar div classspacer_box_title>use strict; import { GUI, TABS } from ./../js/gui; import i18n from ./../js/localization; TABS.mytab {}; TABS.mytab.initialize function (callback) { if (GUI.active_tab ! mytab) { GUI.active_tab mytab; } import(./mytab.html?raw).then(({ default: html }) { GUI.load(html, function () { i18n.localize(); // 翻译>case mytab: import(./../tabs/mytab).then(() TABS.mytab.initialize(content_ready)); break;这里用动态import()实现懒加载——只有用户真正点击该页签时代码才会被下载执行保证主窗口启动速度。第 3 步在index.html添加导航条目打开 index.html找到#tabs区域。两个ul分别对应不同状态ul.mode-disconnected未连接飞控时可见如 landing、firmware_flasherul.mode-connected连接飞控后可见如 setup、pid_tuning按需求位置插入以连接后可见为例li classtab_mytab a href#>this.defaultAllowedTabsWhenConnected [ failsafe, // ... 其他页签 search, mytab // 新增 ];第 5 步补充国际化文案与样式国际化在 locale/en/messages.json 中按现有格式添加词条data-i18n属性会据此取值翻译tabMyTab: { message: My Tab }, mytabHello: { message: Hello from my new tab! }如需支持中文等其他语言可在 locale/ 下的zh_CN、ru等目录同步添加。样式新建src/css/tabs/mytab.css然后在 src/css/styles.css 的import列表中加一行import tabs/mytab.css;四、避坑指南4 个高频错误命名不一致tab_mytabclass、case mytab、文件名mytab.js、白名单mytab四处必须完全相同否则点击无反应或控制台出现Tab not found: mytab。忘记GUI.content_ready(callback)不调用该回调加载动画不会消失页签会一直显示空白转圈状态。cleanup中漏清资源页签切换时框架会调用当前页签的cleanupjs/gui.js轮询定时器interval、MSP 回调必须在这里释放否则后台资源泄漏。图标缺失classtabicon ic_xxx引用的是内置图标集新页签建议先复用现有图标如ic_config避免图标不显示。五、总结一张图回顾页签注册链路用户点击侧边栏 ↓ index.html li classtab_mytab ↓ configurator_main.js switch (tab) → 白名单校验gui.js ↓ import(./mytab.js) 懒加载 ↓ TABS.mytab.initialize → GUI.load(html) → i18n.localize() → GUI.content_ready掌握以上 5 个步骤你就可以在 INAV Configurator 中扩展任何自定义配置页签了。建议动手时先通读 tabs/search.js 和 tabs/search.html 这对最精简的官方示例它们是理解整个页签框架的最佳起点。赞分享【免费下载链接】inav-configurator项目地址https://gitcode.com/gh_mirrors/ina/inav-configurator点击查看免费下载相关推荐ZerolanLiveRobot开发者指南如何扩展一个新服务并注册自定义事件附完整实战示例ZerolanLiveRobot开发者指南如何扩展一个新服务并注册自定义事件附完整实战示例 如果你想在开源项目 ZerolanLiveRobot AI开发者指南如何为Damn Vulnerable Drone新增一个攻击场景YAML配置全解析开发者指南如何为Damn Vulnerable Drone新增一个攻击场景YAML配置全解析 Damn Vulnerable Drone 是一款基于 Ar终极指南如何用dadb库无需ADB直接连接Android设备终极指南如何用dadb库无需ADB直接连接Android设备 dadb是一个革命性的Kotlin/Java开源库它让开发者能够直接与Android设备通信开发工具移动开发上一篇WXT扩展框架终极指南如何用现代工具链快速开发浏览器扩展下一篇electron-vue 端到端测试完全指南基于 Spectron Mocha Chai 的 E2E 测试实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/31 1:27:51

JetBrains 开源的 AI 编程工作台,给每轮改动一张收据

JetBrains 开源的 AI 编程工作台,给每轮改动一张收据 【免费下载链接】thinkrail Vibe code with pi in a lightweight, real IDE that customises itself around the way you work — The Vibe You Need 项目地址: https://gitcode.com/GitHub_Trending/th/think…

2026/10/31 1:27:51

作业--程序设计基础-ifswitch作业

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 1:22:51

(最新)基于Springboot智慧超市管理系统【附源码+文档】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 2:23:18

Forest Pack 7 帮助文档拆解:从散布逻辑到渲染农场部署

简介:这份PDF是3ds Max森林树木植物散布插件Forest Pack 7的官方帮助文档,面向建筑可视化、游戏开发与影视特效领域的三维设计师,尤其适合需要在大场景中批量布置树木、植被、人群、岩石与地面覆盖物的中高级用户。文档系统覆盖安装与论坛访问…

2026/10/31 2:23:18

纯方位无源定位建模全解析:从余弦定理到无人机编队调整方案

简介:这份资源是2022年全国大学生数学建模竞赛本科组B题的完整研究论文,聚焦无人机纯方位无源定位问题,适合备战数模竞赛的本科生、指导教师及对编队控制建模感兴趣的读者参考。论文围绕圆形与锥形两种编队展开,涵盖被动接收信号无…

2026/10/31 2:23:18

Forest Pack 7 帮助文档精读:从安装配置到散布调优的完整指南

简介:这份PDF是3ds Max森林树木植物散布插件Forest Pack 7的官方帮助文档,面向建筑可视化、游戏开发与影视特效领域的三维设计师,尤其适合需要在大场景中批量布置树木、植被、人群、岩石与地面覆盖物的中高级用户。文档系统梳理了从入门到进阶…

2026/10/31 2:23:18

Kettle 9.3 安装配置全攻略:从JDK选择到定时作业验证

简介:这份资源面向数据工程师、ETL 初学者及需要搭建数据集成流程的技术人员,提供开源 ETL 工具 Kettle(Pentaho Data Integration)9.3 版本的获取入口,帮助读者解决官方渠道下载不便的问题。资源包共 1 个 docx 文档&…

2026/10/31 2:23:18

Spark路径URI规范详解:file://与hdfs://正确写法避坑指南

简介:本资源是《大数据技术原理与应用》课程配套的‘Spark初级编程实践’实验报告,面向高校大数据初学者及Hadoop/Spark入门学习者,聚焦分布式计算框架的核心操作训练。内容覆盖Spark环境搭建(Ubuntu虚拟机Hadoop 3.1.3SparkJDK 1…

2026/10/31 2:18:17

Shell脚本 vs Python脚本:数据报表生成的效率

在数据统计报表与BI(商业智能)的场景中,选择合适的工具至关重要。随着业务数据量的增长,开发者常面临如何高效处理、分析并生成报表的问题。Shell脚本以其简洁和快速的执行能力被广泛用于Linux环境下的自动化任务,而Py…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑