QGC的工具栏添加一个自定义Button

时间:2024-04-04 09:12:34

1.工具栏4个button在文件MainToolBar.qml文件中  进行的设计和信号槽的连接

   4个按钮分别是application setting  、Vehicle Setup 、Plan 、 Fly 、Analyze  

2.添加一个按钮的步骤  

   a.仿照AnalyzeButton,在其代码块下并列填写,这里要注意将teddy.svg图标文件添加到qgcresources.qrc资源文件

      QGCToolBarButton {
                id:                 myButton
                anchors.top:        parent.top
                anchors.bottom:     parent.bottom
                exclusiveGroup:     mainActionGroup
                source:             "/qml/my_image/src/ui/toolbar/Images/teddy.svg"    
                visible:               true
                onClicked:          toolBar.showMyView()      //button按下的槽中发送showMyView信号
            }

        在qrc文件中添加teddy.svg

   QGC的工具栏添加一个自定义Button

    b.仿照前面4个按钮添加信号  signal showMyView

     QGC的工具栏添加一个自定义Button

         快捷键ctrl+shift+f  在qgc工程范围内搜索showAnalyzeView信号发现在MainWindowInner.qml中进行连接

      QGC的工具栏添加一个自定义Button

     onShowAnalyzeView:      mainWindow.showAnalyzeView()  //猜测这里是进行信号与槽的连接

     固添加     onShwoMyView : mainWindow.showMyView()

     c.实现mainWindow.showMyView()函数,仿照showAnalyzeView()函数

        function showMyView() {
        mainWindow.enableToolbar()
        rootLoader.sourceComponent = null
        if(currentPopUp) {
            currentPopUp.close()
        }
        ScreenTools.availableHeight = 0
        if (myViewLoader.source  != _myViewSource) {
            myViewLoader.source  = _myViewSource
        }
        hideAllViews()
        myViewLoader.visible = true
        toolBar.checkMyButton()
    }

    由上面的函数可以知道需要定义_myViewSource  和 myViewLoader和 checkMyButton()函数

QGC的工具栏添加一个自定义Button

QGC的工具栏添加一个自定义Button

QGC的工具栏添加一个自定义Button

d.编写qml文件并添加到qgroundcontrol.qrc下面的qml/src/ui/MyView.qml

QGC的工具栏添加一个自定义Button

e.编译运行:问题是没有显示qml文件中的矩形和文本目前尚未找到原因

QGC的工具栏添加一个自定义Button

f.解决问题

后来经过多次尝试发现未填写

QGC的工具栏添加一个自定义Button

经人提示更改qml文件,删掉import qgroundcontrol相关内容

QGC的工具栏添加一个自定义Button

 

再次编译 运行   

发现布局语句不可用

有时切到自定义butto再切回原来的button不能切换

QGC的工具栏添加一个自定义Button

 

 

 

 

相关文章