主界面
文件位置:qrc:/qml/MainRootWindow.qml
组成部分
- header: MainToolBar
- content:FlyView 、PlanView、Drawer(用于显示Appsettings等三个界面,在showTool函数中visible属性被改变)
- footer: LogReplayStatusBar
- MainWindowSavedState
- background: Item
界面切换
- 函数showFlyView和showPlanView用于切换飞行视图和规划视图。这两个函数在MainRootWindow中定义。在FlyView和PlanView中被调用。
- showAnalyzeTool,showSetupTool,showSettingsTool用于显示设置的三个界面。这三个函数调用的是showTool函数。
程序第一次运行弹出的对话框
- 涉及到的对象QtObject{id: firstRunPromptManager}, 此对象核心是调用QGCCorePlugin::firstRunPromptResource函数来显示第一次运行时,单位选择对话框的。
QGCCorePlugin是c++业务类,被注册到qml中是QGroundControl.corePlugin。
可以弹出的对话框
-
1 全局简单消息对话框。
函数 function showMessageDialog(dialogTitle, dialogText)---->最终调用的是3对话框函数。
依赖的组建id:simpleMessageDialog -
2 全局复杂对话框
函数 function showComponentDialog(component, title, charWidth, buttons)
依赖的组建id:dialogDrawerComponent -
3 显示的对话框有四个白色尖角
函数:function showPopupDialogFromComponent(component, properties)、function showPopupDialogFromSource(source, properties)
依赖的组建id:popupDialogContainerComponent -
4 MessageDialog类型的对话框
涉及的组建id:unsavedMissionCloseDialog、pendingParameterWritesCloseDialog、activeConnectionsCloseDialog -
5 显示工具选择对话框:用于选择“Vehicle setup”、“Analysis tool”、 “AppSettings”对话框。
函数 function showToolSelectDialog()---------------->最终调用的是3对话框函数。
依赖的组件id:toolSelectDialogComponent -
6 显示小车严重信息
函数function showCriticalVehicleMessage(message)
依赖的组件id:criticalVehicleMessagePopup -
7 显示指示信息
函数function showIndicatorPopup(item, dropItem)
依赖的组件:indicatorPopup
主界面顶部工具栏
- 文件:MainToolBar.qml
布局
- 整体布局分为上下两部分。下部分为进度条和分割线,进度条和分割线在同一位置。进度条有两个,大进度条和小进度条。大进度条在上传任务时会用到。
- 上面部分又分为三个部分:左、中、右
- 上左布局为水平布局(id:viewButtonRow),此部分会有渐变颜色填充。
QGCToolBarButton-------QCG图标按钮
MainStatusIndicator----飞行模式下显示的状态
QGCButton--------------Disconnect文字提示 - 上中部分是QGCFlickable(id:toolsFlickable),它会依据当前是飞行模式还是任务规划模式加载不同的控件
“qrc:/toolbar/MainToolBarIndicators.qml” 此部分显示的内容是从c++部分获取的。
“qrc:/qml/PlanToolBarIndicators.qml” 内部是个GridLayout - 上右是商标:Image。用户可以自定义
MainStatusIndicator
- 此部分为上左。文件名MainStatusIndicator.qml。仅在飞行模式下才能显示。内部控件的布局方式是水平布局。顺序包含如下控件
- QGCLabel:text内容为Communication Lost、Ready To Fly、Not Ready、Disconnected、Armed、Flying、Landing。
更新函数为:mainStatusText(),此函数不仅更新文字,还会更新MainToolBar的_mainStatusBGColor颜色(红绿黄)。
当单机时会弹出传感器信息。 - QGCColoredImage:飞行模式图
- FlightModeMenu:飞行模式菜单
- QGCLabel:垂起机型相关的。当单击时显示vtolTransitionComponent。
FlightModeMenu
- 此部分位于MainStatusIndicator中。对应的文件名为FlightModeMenu.qml.
- 说明:飞行模式选择菜单。
- 飞行模式有:手动(Manual)、自稳(Stabilized)、特技Acro、半自稳、高度、板外Offboard、定点Position、等待、任务、返航Return、跟随Follow Me、精准降落。
- updateFlightModesMenu()函数会依据当前选择的飞机,更新飞行菜单选项。当点击菜单后,会设置当前的活动飞机的飞行模式。调用的是Vehicle的flightMode属性。
飞行界面
文件名:FlyView.qml
拥有的控件
- FlyViewMap:地图
- FlyViewVideo:视频
- QGCPipOverlay:用于切换地图和视频的位置,并支持缩放,弹出等一些窗口操作
- GuidedAltitudeSlider: 高度显示调,位于界面右侧
- GuidedActionList:操作选择框,操作有启动任务,继续任务,改变高度、land abort。
- FlyViewWidgetLayer:常规操作显示的控件集合。
- FlyViewCustomLayer:用户自定义的涂层。
FlyViewWidgetLayer
飞行界面的一层的widget。它包含了一些小的部件。如标尺,左侧的按钮列表等。
- FlyViewToolStrip---------------------:左上的按钮列表
- MapScale-----------------------------: 左上地图尺寸指示,放大缩小按钮。
- VehicleWarnings----------------------: 在界面中间提示飞机的一些警告:飞机未获得GPS定位和参数相关的错误。
- FlyViewAirspaceIndicator-------------:使用了AirMap公司服务的才显示此界面。界面位于顶部的中间。
- Loader-------------------------------: 加载虚拟摇杆
- TelemetryValuesBar-------------------: 遥测数据显示调,位于底部的中间。
- PhotoVideoControl--------------------: 视频控制面板
- FlyViewInstrumentPanel---------------: 单个飞机的仪表盘
- multiVehiclePanelSelector------------:单飞机/多飞机切换
- FlyViewMissionCompleteDialog---------: 飞行完成时对话框
任务规划界面
文件名:PlanView.qml
内部部件
内容 | 说明 |
---|---|
FlightMap | 地图 |
ToolStrip | 左侧按钮 |
Rectangle.rightPanel | 右侧面板: 1 AirspaceControl 2 Rectangle :Mission Controls 3 QGCTabBar :任务、电子围栏、集结 4 Item.missionItemEditor : 任务编辑器 5 GeoFenceEditor : 电子围栏编辑器 6 RallyPointEditorHeader : 集结点编辑器 7 RallyPointItemEditor |
TerrainStatus | 底侧创建任务时的高度显示 |
MapScale | 在TerrainStatus上的控制地图缩放的控件 |