QGC的MainWindow的menuWidget

本文介绍了QGC主界面的构建过程,包括菜单栏及常用控件的设置方法,详细展示了如何通过C++代码实现界面元素的动态加载,并列举了如MAVLink Inspector等关键插件的集成方式。

这里写图片描述

MainWindow::_buildCommonWidgets(void)

QGC主界面的菜单栏

第二个菜单栏

第一个action
//ui/MainWindow.cc
#ifdef UNITTEST_BUILD
    QAction * qmlTestAction=new QAction("Test QML palette and controls",NULL);
    connect(qmlTestAction,QAction::triggered,this,&MainWindow::_showQmlTestWidget);
    _ui.menuWidgets->addAction(qmlTestAction);
剩下6个action
//ui/MainWindow.cc
static const char *rgDockWidgetNames[] = {
    "MAVLink Inspector",
    "Custom Command",
    "Onboard Files",
    "Deprecated Widget",
    "HIL Config",
    "Analyze"
};

void MainWindow::_buildCommonWidgets(void){
    logPlayer=new QGCMAVLinkLogPlayer(statusBar());
    statusBar()->addPermanentWidget(logPlayer);
    for(int i=0,end=ARRAY_SIZE(rgDockWidgetNames);i<end;i++){
    const char *pDockWidgetName=rgDockWidgetNames[i];
    //Add to menu
    QAction *action=new QAction(pDockWidgetName,this);
    action->setCheckable(true);
    action->setData(i);
    connect(action,QAction::triggered,this,&MainWindow::_showDockWidgetAction);
    _ui.menuWidgets->addAction(action);
    _mapName2Action[pDockWidgetName]=action;
}


。


QGCApplication *app=new QGCApplication();
...
在构造函数中,app->init
主要是注册了一对qmlRegiasterType
app->_initNormalAppBoot()
调用了MainWindow->create()创建窗口







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值