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
b.仿照前面4个按钮添加信号 signal showMyView
快捷键ctrl+shift+f 在qgc工程范围内搜索showAnalyzeView信号发现在MainWindowInner.qml中进行连接
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()函数
d.编写qml文件并添加到qgroundcontrol.qrc下面的qml/src/ui/MyView.qml
e.编译运行:问题是没有显示qml文件中的矩形和文本目前尚未找到原因
f.解决问题
后来经过多次尝试发现未填写
经人提示更改qml文件,删掉import qgroundcontrol相关内容
再次编译 运行
发现布局语句不可用
有时切到自定义butto再切回原来的button不能切换