无法使用 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,因此不会被加载。

相关内容