2016-11-21 8 views
2

Ich stelle zusammen eine ComboBox in einem Tableview QML wie folgt:ComboBox in einem Tableview

TableView { 
    id: reviewTable 
    frameVisible: false 
    sortIndicatorVisible: true 
    width: parent.width; height: parent.height 
    anchors.centerIn: parent 

    TableViewColumn { 
     resizable: true 
     role: "SeriesDescription" 
     title: "Series Description" 
     width: 350 
    } 

    TableViewColumn { 
     resizable: false 
     role: "TimePoints" 
     title: "Time Points" 
     width: 100 
    } 

    TableViewColumn { 
     role: "ImageType" 
     title: "Image Type" 
     width: 100 
     delegate: Rectangle { 
      anchors.fill: parent 
      //anchors.verticalCenter: parent.verticalCenter 
      ComboBox { 
       model: ListModel { 
        ListElement { text: "Veggies" } 
        ListElement { text: "Fruits" } 
        ListElement { text: "Cars" } 
       } 
      } 
     } 
    } 
} 

Dies ist jedoch die Combobox in eine seltsame Art und Weise machen, wo die Grenzen Seeb ein wenig Cut-off. Siehe den beigefügten Screenshot. Weiß jemand wie das behoben werden kann?

enter image description here

Antwort

2

hier nicht die perfekte Lösung, aber trotzdem ... Sie können die Zeilenhöhe von rowDelegate Einstellung ändern, zum Beispiel:

rowDelegate: Item { 
      height: 30 
} 

und so strecken Comboboxen den ganzen Raum zu füllen:

TableViewColumn { 
     role: "ImageType" 
     ... 
     delegate: Rectangle { 
      ComboBox { 
       anchors.fill: parent 
       anchors.margins: 2 
       model: ListModel { 
        ... 
       } 
      } 
     } 
    } 
+0

Dies scheint das Problem relativ gut zu lösen. Es gibt jedoch ein neues Problem, wenn ich den Zeilen-Delegaten einstelle. Wenn ich auf die Zeile klicke, verschwindet sie! – Luca

+0

Ok, das ist einfach der Zeilen-Delegat mit der Standardfarbe weiß. – Luca

+1

Sicher, wenn Sie Ihren eigenen Reihen Delegaten definieren, müssen Sie das selbst malen. – folibis

Verwandte Themen