2016-03-07 69 views
1

我想創建一個帶有QML的TableView,我有一個複選框,一個圖像和一個文本字段。表的列定義如下:TableView與QML不正確的大小

// TableViewCheckBoxColumn.qml 
TableViewColumn { 
    title: "" 
    role: "check" 
    delegate: CheckBox { 
     anchors.fill: parent 
     checked: styleData.value 
    } 
} 

//TableViewImageColumn.qml 
TableViewColumn { 
    title: "" 
    role: "thumbnail" 
    delegate: Image { 
     anchors.fill: parent 
     source: styleData.value 
     width: 30 
     height: 30 
    } 
} 

現在數據模型和表本身如下被定義爲QML組件:

Item { 
    ListModel { 
     id: sourceModel 
     ListElement { 
      check: false 
      thumbnail: "file:///Users/xargon/alignment.png" 
      length: "10:22" 
     } 
    } 

    // Table view 
    TableView { 
     anchors.centerIn: parent 
     alternatingRowColors: false 

     TableViewCheckBoxColumn { 
      id: checkedColumn 
     } 

     TableViewImageColumn { 
      id: thumbColumn 
     } 

     TableViewColumn { 
      id: lengthColumn 
      role: "length" 
      title: "Length" 
     } 

     model: sourceModel 
    } 
} 

現在,這被嵌入在ColumnLayout和StackView如:

ColumnLayout { 
    anchors.fill: parent 

    MyTable { 
     id: reviewScreen 
     Layout.fillWidth: true 
    } 

    StackView { 
     id: options 
     Layout.fillHeight: true 
     Layout.fillWidth: true 
     initialItem: reviewScreen 
    } 
} 

現在我期待的表格填寫父控件的整個寬度,我也期待中的圖像被繪製成30×30的圖像,但我看到的是附上屏幕截圖,其中水平滾動條在控件之間移動,桌子很小,圖像也很扭曲。

enter image description here

+1

你需要指定的寬度和高度的每個元素。 – DenimPowell

回答

1

是的,只有你需要聲明HEIGH和重量每TableViewColumn,例如:

TableViewColumn { id: lengthColumn; role: "length"; title: "Length"; height: parent.height/8; width:parent.width*0.25}