Software architecture Initialization language and virtual buttons (软件架构 初始化语言与虚拟按键)

开发环境:ubunt 18.04.4 LTS QT:QT Creator(4.10.2)QT(5.13.2)Android(jdk 1.8.0_91 sdk 26.1.1 ndk 19.2.5345600)QGCStable_V4.0
请问一下才入手QGC软件二次开发有点摸不着头脑,请大神梳理一下软件架构。


还想请问一下怎么初始化出来的时候界面就能直接显示中文,并显示虚拟摇杆呢?
关于语言我跟踪到GeneralSettings.qml下
QGCLabel {
text: qsTr(“Language”)
visible: QGroundControl.settingsManager.appSettings.language.visible
}
关于摇杆我跟踪到GeneralSettings.qml下
FactCheckBox {
text: qsTr(“Virtual Joystick”)
visible: _virtualJoystick.visible
fact: _virtualJoystick
}
关于Fact到的函数不是很理解希望大神能解答
DECLARE_SETTINGSFACT(AppSettings, language)
DECLARE_SETTINGSFACT(AppSettings, virtualJoystick)

Fact 是QGC自己定义的一个容器,可以用来存储各类变量,并且提供了从c++侧和qml侧都可以调用和赋值的方法,还有其他一些功能比如范围检测,存储读取等功能。具体的你可以看一下Fact.h这个类定义。

关于语言和虚拟摇杆的话,比较直接的方法你可以修改App.SettingsGroup.json里面 “language” 和 “virtualJoystick” 这两个参数的defaultValue. 如果是想在程序界面里直接指定默认参数的话就要你自己去实现了。不过QGC所有的settingsgroup都是会存储的,也就是说改变设定之后再次运行会加载你上次的设定数值。具体的实现你可以去参考SettingsGroup.h这个类。

这个论坛上默认都是英语交流的,而且本来参与人数就不多,所以你用中文提问的话估计不太会有人回复。我也是做QGC二次开发不长时间,如果有什么问题的话可以给我留言咱们一起交流。