如何正确更改表视图的行高


Window {
    id: uninstallWindow
    width: 640
    height: 480
    property variant pluginData;
    TableView {
        id:_pluginTable
        anchors.right: parent.right
        anchors.rightMargin: 0
        anchors.left: parent.left
        anchors.leftMargin: 0
        anchors.bottom: parent.bottom
        anchors.bottomMargin: 43
        anchors.top: parent.top
        anchors.topMargin: 0
        model: pluginData
        itemDelegate: Text {
            text: modelData
            font.pixelSize: 24
        }
        TableViewColumn {
        }
    }
}

我花了几个小时才走到这一步,我觉得这应该是一个相对简单的操作,那么为什么这么难呢? 如您所见,我更改了表中项目的字体大小,因为它们默认情况下太小了。 这只会导致它们被不变的行大小剪裁。 我试过了

  1. 设置rowDelegate对象(但这会导致默认情况下存在的所有其他样式信息丢失,例如背景,选择颜色等,否则我不知道如何指定它(

  2. 基于 QAbstractListModel/QAbstractTableModel 设置自定义模型对象(由于某种原因,只有 Qt 知道,"data"函数从未被调用过......

  3. 设置自定义项目委托(似乎不再通过此对象控制高度(

我需要跳过哪些箍才能让行更改其大小?

正如 Asker 已经写过的那样,可以使用 rowDelegate 实现自定义行高,但这会丢弃默认样式。可以使用系统面板恢复默认样式。

rowDelegate: Rectangle {
   height: 30
   SystemPalette {
      id: myPalette;
      colorGroup: SystemPalette.Active
   }
   color: {
      var baseColor = styleData.alternate?myPalette.alternateBase:myPalette.base
      return styleData.selected?myPalette.highlight:baseColor
   }
}

这将恢复行的默认背景颜色(包括在需要时交替行颜色(和所选行的颜色,这似乎是所需要的。

以下内容在

Qt 5.10中对我来说就像一个魅力:

rowDelegate: Item { height: 30 }

我以itemDelegate(和headerDelegate(进行实际样式(字体/颜色(,并通过TableViewColumn提供内容(有和没有自己的代表(。

要更改行高,您需要使用 rowDelegate .例如:

rowDelegate: Rectangle{
width: childrenRect.width
height: 40
}

要更改表视图高度,可以使用Layout.preferredHeight 。例如:

Layout.preferredHeight: 300

相关内容

  • 没有找到相关文章

最新更新