目录
QGC的界面由三大部分组成:
- 1 菜单栏(File和Widget两项):其中File包含一个是否使能日志回放功能以及手动退出操作。Widget则包含了HIL和MAVLInk Inspector等功能控件。
- 2 任务栏:实现将地面站的日志文件回放。
- 3 主显示区域,该部分将支持的功能分类按照不同的页面进行展示。为方便大家将页面和代码对应我们先了解一下QGC界面显示的整体框架。
QGC界面显示框架
地面站的UI界面是通过MainWindow类实现开始调用的,其中MainWindow.ui是GUI控件页面,同时该类中开始加载了qml文件,通过一些定制化的qml控件完成整个界面。下面根据代码来进行详细讲解:
1、MainWindow的构造函数中,通过加载了MainWindowHybrid.qml文件,相关代码如下:
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
_mainQmlWidgetHolder->setContextPropertyObject("controller", this);
_mainQmlWidgetHolder->setContextPropertyObject("debugMessageModel", AppMessages::getModel());
_mainQmlWidgetHolder->setSource(QUrl::fromUserInput("qrc:qml/MainWindowHybrid.qml"));
2、在MainWindowHybrid.qml,在该文件中通过一个Loader加载了MainWindowInner.qml.
Loader {
id: mainWindowInner
anchors.fill: parent
source: "MainWindowInner.qml"
...
}
3 MainWindowInner.qml主要的控制页面的切换和加载。
- MainToolBar:显示页面切换按钮栏
- AppSettings.qml : Application Setting页面
- SetupView.qml:Setup页面
- PlanView.qml:Plan页面
- FlightDisplayView:飞行页面
- AnalyzeView.qml: Analyze页面