2012-11-09 90 views
1

使用多個數據模型的列表視圖我想在2個列表視圖使用2種型號,但第二個列表不填充像第一個。 ,我已經使用作爲代碼如下:QML-如何在QML

Q_DECL_EXPORT int main(int argc, char *argv[]) 
{ 
    QScopedPointer<QApplication> app(createApplication(argc, argv)); 
    MyModel myModel; 
    myModel.addPrimaryData(ModelItem(1, "Apple")); 
    myModel.addPrimaryData(ModelItem(2, "Orange")); 
    myModel.addPrimaryData(ModelItem(3, "Banana")); 

    MyModel myModel2; 
    myModel2.addSecondaryData(ModelItem(1, "Apple2")); 
    myModel2.addSecondaryData(ModelItem(2, "Orange2")); 
    myModel2.addSecondaryData(ModelItem(3, "Banana2")); 

    QDeclarativeView declView; 
    QDeclarativeContext *declContext = declView.rootContext(); 
    declContext->setContextProperty("myModel", &myModel); 
    declContext->setContextProperty("myModel2", &myModel2); 

    declView.setSource(QUrl("qml/MyDemo/main.qml")); 
    declView.show(); 

    return app->exec(); 
} 

如上顯示,我已經建立2種型號即基於myModel和myModel2和用於在QML 2個Listy觀。

ListView1的使用模型基於myModel和ListView2使用模型myModel2。但myModel2數據不在列表中顯示。

此的任何具體原因。請回復你的想法。

,我已經使用的QML代碼如下:

ListView { 
    id:firstListView 
    model: myModel 
    delegate: Item{ 
    id: firstDelegate 
    Text { 
    text: name 
    color: "white" 
    } 
} 
} 

ListView { 
    id: secondListView 
    model: myModel2 
    delegate: Item{ 
    id: secondDelegate 
    Text { 
     text: name 
     color: "white" 
    } 
    } 
} 
+2

你應該張貼QML代碼。 – JuliusG

+1

儘管事實上您使用了兩個ListView項目,但您並未提供有關模型的內部信息以及您在QML中使用它們的方式的任何信息。給任何受過教育的答案帶來太多的不確定性。 – sebasgo

+0

我已更新帖子,請重新訪問並提供您的意見。 – user1182217

回答

0

既然你沒有給我們您的MyModel的實施,有很少的幫助,我們可以提供。現在我可以建議的是檢查以下內容:

  • 確保第二個模型的角色名稱實際上是「名稱」。
  • 確保第二ListView不僅僅是第一躲在下。
  • 比較addPrimaryDataaddSecondaryData之間您的實現,以確保代碼工作在兩種。

如果您想要更具體的答案,您必須告訴我們您的MyModel是如何工作的。