2013-06-26 5 views
10

Ich habe dieses Stück QML-Code:Wie Code auf QML wiederzuverwenden

Column { 
     spacing: units.gu(2) 
     anchors { 
      fill: parent 
      centerIn: parent 
     } 
     Row { 
      spacing: units.gu(4) 
      ... 
     } 
     Row { 
      spacing: units.gu(4) 
      ... 
     } 
     Row { 
      spacing: units.gu(4) 
      ... 
     } 
     Row { 
      spacing: units.gu(4) 
      ... 
     } 
    } 

über Best Practices von QML-Programmierung, wie die Wiederverwendung von Code doppelte Attribute von gemeinsamen Elementen zu vermeiden? Wie im obigen Beispiel, vermeiden Sie Zeilen "Abstand: units.gu (4)".

Antwort

10

Setzen Sie Ihren Code in eine separate qml-Datei und verwenden Sie diesen Dateinamen als Element. z.B.

// Datei MyCustomRow.qml

Row { 
     spacing: units.gu(4) 
     ... 
    } 

dann in der anderen qml Datei:

Column { 
     spacing: units.gu(2) 
     anchors { 
      fill: parent 
      centerIn: parent 
     } 
     MyCustomRow{ 

     } 
     MyCustomRow{ 

     } 
     MyCustomRow{ 

     } 
     MyCustomRow{ 

     } 
    } 

Infact Sie könnten einen Repeater verwenden:

Column 
{ 
      spacing: units.gu(2) 
      anchors 
      { 
       fill: parent 
       centerIn: parent 
      } 

      Repeater 
      { 
       model : 5 
       MyCustomRow 
       { 

       } 
      } 
} 

Edit:

Denn es in einer einzigen Datei zu tun (wie im Kommentar gefragt) können Sie QML Component Element zusammen mit Loader Elemente verwenden:

Column { 
     spacing: units.gu(2) 
     anchors { 
      fill: parent 
      centerIn: parent 
     } 


     Component 
     { 
     id : myCustomRow 
     Row 
     { 
      spacing: units.gu(4) 
      ... 
     } 
     } 

     Loader { 
     sourceComponent : myCustomRow 

     } 
     Loader { 
     sourceComponent : myCustomRow 

     } 
     Loader { 
     sourceComponent : myCustomRow 

     } 
     Loader { 
     sourceComponent : myCustomRow 

     } 
    } 
+0

Interessant. Und wie geht das in der gleichen Datei? –

+1

@ayr_ton Ich habe einen Schnitt gemacht. Prüfen. –

Verwandte Themen