-1

私は次のコードを持っています:

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コンポーネントはUbuntuSDKの一部であり、Qt Quickではありません。その使用は、問題について多くの洞察を提供するものではありません。

MainViewコンポーネントの外側に、のプロパティとまったく同じ行を追加しましたがTabs、問題はそこには明らかではなく、問題はUbuntuコンポーネントにあると私は信じています。問題はUbuntuコンポーネントにある可能性がありますが、エラーメッセージが実際に何を意味するのかを理解するのに役立つ場合があります。

4

1 に答える 1

2

発生するエラーは、Tab {}アイテムの「page」プロパティが文字列(またはURL)コンテンツを受け入れることができず、アイテムまたは派生コンポーネントが必要であることを意味します。

したがって、AnnualBudgetファイルまたはSavingsGoalsファイルは同じフォルダーにあり(インポートは不要)、ファイル名の最初の文字が大文字であるため、QMLエンジンで自動的にこれを実行できるため、コンポーネントとしてインスタンス化できると確信しています。

Tabs {
    Tab {
        id: financialDetailsTab
        title: i18n.tr("Financial Details")
        page: financePage;
    }
}

FinancialDetails {
    id: financePage;
}

つまり、「financePage」はIDであるため、QMLエンジンの場合はQQuickItemポインターであり、それを受け入れます。タブとページのペアごとに同じことを行います。

于 2013-03-26T19:42:49.777 に答える