自定义TableViewColumn委托问题

时间:2018-04-30 11:17:11

标签: qt qml

我对TableViewColumn的自定义委托有几个问题。这是我的TreeView:

    TreeView {
        id: view
        anchors.fill: parent
        sortIndicatorVisible: true
        model: fileSystemModel
        rootIndex: rootPathIndex
        selection: sel
        selectionMode: 2

        TableViewColumn {
            id: namecolumn
            title: "Name"
            role: "fileName"

            resizable: true
            width: parent.width-sizeWidth-dateWidth-scrollBarWidth
            delegate: ItemDelegate {
                id: fileCheckDelegate
                Row{

                    CheckBox{
                        id: cbox

                          visible: (model.isDir==true) ? false : true

                    }
                    Text{
                        id: itext
                        text: model.fileName
                        width: namecolumn.width-itext.x-cbox.width
                        elide: Text.ElideRight

                    }
                 }
                ToolTip {
                    parent: fileCheckDelegate
                    visible: hovered
                    delay: 1000
                    text: qsTr(model.fileName)
                }
            }

        }
        TableViewColumn {
            id: sizecolumn
            title: "Size"
            role: "size"

            resizable: false
            width: sizeWidth

        }

        TableViewColumn {
            id: datecolumn
            title: "Date Modified"
            role: "lastModified"
            width: dateWidth
            resizable: false

        }
    }

问题见下图:

  • 文件名不会被截断,但我认为自定义委托应该计算宽度,以便elide添加省略号。我的计算有什么问题?
  • CheckBox没有垂直居中,如何实现?编辑:评论中的解决方案效果很好
  • 我的自定义委托没有交替的背景颜色。我怎么能得到这个?
  • 此外,如果选择了一个项目,我的自定义代理没有突出显示颜色。这特别奇怪,就像我在例如在Qt TableView示例中,委托也接收高亮颜色。它可能与我混合控制1.4和2.4?
  • 有关

感谢您的帮助,

The TreeView with problems

0 个答案:

没有答案