为每个选项卡重复使用工具栏代码

为每个选项卡重复使用工具栏代码

我正在使用 QML 创建一个音乐应用,它使用了大约五个选项卡,每个选项卡都使用一个工具栏。工具栏应该看起来相同,因此我不想为每个选项卡使用完全相同的代码,而是希望为每个选项卡重复使用一个工具栏的代码。

我尝试使用仅包含工具栏代码的外部 .qml 文件,但是不起作用。

如何对工具栏重新使用相同的代码,而不是在代码文件中多次复制粘贴相同的代码?

答案1

您是否尝试在主视图中定义一个工具栏并每次都简单地使用该 id?

像这样:

import QtQuick 2.0
import Ubuntu.Components 0.1

MainView {
    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"
    applicationName: "toolbartest"
    id: root

   // S4 resolution 1920x1080
    width: units.gu(54)
    height: units.gu(96)

    ToolbarActions{
        id: centralBar
        Action {
            text: "print"
            onTriggered: print("action triggered")
        }
        Action {
            text: "next"
            onTriggered: {
                if (tabs.selectedTabIndex < 2){ 
                    tabs.selectedTabIndex += 1
                } else {
                    tabs.selectedTabIndex = 0
                }
            }
        }
    }

    Tabs {
        id: tabs
        Tab {
            title: i18n.tr("Tab1")
            page: Page {
                Label {
                    id: label1
                    anchors.centerIn: parent
                    text: "A centered label"
                }
                tools: centralBar
            }
        }
        Tab {
            title: i18n.tr("Tab2")
            page: Page {
                Label {
                    id: label2
                    anchors.centerIn: parent
                    text: "A centered label2"
                }
                tools: centralBar
            }
        }    

        Tab {
            title: i18n.tr("Tab3")
            page: Page {
                Label {
                    id: label3
                    anchors.centerIn: parent
                    text: "A centered label3"
                }
                tools: centralBar
            }       
        }
    }
}

相关内容