Qt.resolvedUrl を使用して QString を QQuickItem* に割り当てることができません

Qt.resolvedUrl を使用して QString を QQuickItem* に割り当てることができません

次のコードがあります:

Tabs {
    Tab {
        id: financialDetailsTab
        title: i18n.tr("Financial Details")
        page: Qt.resolvedUrl("FinancialDetails.qml")
    }
    Tab {
        id: monthlyBudgetTab
        title: i18n.tr("Monthly Budget")
        page: Qt.resolvedUrl("MonthlyBudget.qml")
    }
    Tab {
        id: annualBudgetTab
        title: i18n.tr("Annual Budget")
        page: Qt.resolvedUrl("AnnualBudget.qml")
    }
    Tab {
        id: savingsGoalsTab
        title: i18n.tr("Savings Goals")
        page: Qt.resolvedUrl("SavingsGoals.qml")
    }
}

次のエラーが発生します:

Unable to assign QString to QQuickItem*
Unable to assign QString to QQuickItem*
Unable to assign QString to QQuickItem*
Unable to assign QString to QQuickItem*

が使用されている行に注意してくださいQt::resolvedUrl。このTabsコンポーネントはUbuntu SDKの一部であり、Qt Quickではなく、唯一のその使用法では、問題についての洞察はあまり得られません。

MainViewコンポーネントの外部に のプロパティとしてまったく同じ行を追加しましたがTabs、そこでは問題は明らかにならなかったので、問題は Ubuntu コンポーネントにあると考えられます。

すべてのファイルが存在し、プロジェクト内でこのファイルと同じレベルに配置されています。ここで何が間違っているのでしょうか?

答え1

正しい書き方は次のとおりです。

Tabs {
  Tab {
    page: FinancialDetails {}
    // ...
  }
  // ...
}

pageが必要ですItemが、Qt.resolvedUrl文字列を返します。これはアイテムへの URL として解釈されないため、読み込まれません。

関連情報