2017-09-06 1 views
0

Ich habe ein Modell (markerModel) aus AbstractListModel abgeleitet, die status drei Rollen haben, position und label. Ich zeige sie, indem ich Kreise auf der Karte zeichne. Zur gleichen Zeit möchte ich ihre position und label n ein Rechteck rectangle1 drucken. Aber MapItemView haben bereits einen Delegierten. Kann es mehrere Delegierte mit einem Modell geben?QML einziges Modell mit mehreren Teilnehmern oder Ansichten befestigt

Map { 
    id: map 
    anchors.fill: parent 
    plugin: mapPlugin 
    center: QtPositioning.coordinate(22.5726, 88.3639) 
    zoomLevel: 14 

    MapItemView { 
     model: markerModel 
     delegate: markerDelegate 
    } 

    Component { 
     id: markerDelegate 

     MapQuickItem{ 
      anchorPoint: Qt.point(2.5, 2.5) 
      coordinate: QtPositioning.coordinate(position.x, position.y) 
      zoomLevel: 0 
      sourceItem: Rectangle{ 
       width: settings.marker_size; 
       height: settings.marker_size; 
       radius: settings.marker_size/2; 
       color: settings.marker_colors[status] 
       border.color: "white" 
       border.width: 1 
      } 
     } 
    } 
} 

Rectangle { 
    id: rectangle1 
    anchors.top: map.top 
    anchors.right: map.right 
    width: 500 
    height: 750 
    color: "#ffffff" 
} 

Antwort

0

Es gibt keine direkte Verbindung zwischen einem Modell und einem Delegierten ist es der Ansicht, dass die beiden verbindet.

Sie können beliebig viele Ansichten haben das gleiche Modell für die Datenquelle verwendet, und Sie können, was andere Teilnehmer Sie in jeder dieser Ansichten wollen haben:

ListModel { 
    id: mod 
    ListElement { value: "red" } 
    ListElement { value: "green" } 
    ListElement { value: "blue" } 
    ListElement { value: "cyan" } 
    ListElement { value: "magenta" } 
    } 

    Row { 
    ListView { 
     width: 100 
     height: 250 
     model: mod 
     delegate: Rectangle { 
     width: 100 
     height: 50 
     color: value 
     } 
    } 
    ListView { 
     width: 100 
     height: 250 
     model: mod 
     delegate: Rectangle { 
     width: 100 
     height: 50 
     color: "grey" 
     Text { 
      anchors.centerIn: parent 
      text: value 
     } 
     } 
    } 
    } 
+0

wie QT Document View So its, Views eine Verbindung Modell und Delegat, der angibt, wie jedes Element des Modells dargestellt werden muss? –

+0

Ja, absolut. – dtech

+0

Wie kann ich eine beliebige Funktion als Delegat setzen? Würde 'delegieren: function (row) {}' work? –

Verwandte Themen