【问题标题】:QtQuick: view allowing multiple selection at cell levelQtQuick:允许在单元格级别进行多项选择的视图
【发布时间】:2016-12-16 10:07:41
【问题描述】:

我想实现一个表格视图,使用QtQuick,允许在单元格级别进行多项选择,模拟旧样式QTableView 的行为,启用QAbstractItemView::SelectItemsQAbstractItemView::ExtendedSelection 标志。

我可以使用哪些QtQuick 组件?

【问题讨论】:

标签: qml qt-quick qtquickcontrols


【解决方案1】:

TableView默认情况下只允许选择行,但您可以通过自定义其单元格委托 (itemDelegate) 来覆盖选择行为。

首先,您必须使用以下命令禁用默认选择行为:

selectionMode: SelectionMode.NoSelection

然后在itemDelegate 你可以做类似的事情:

        itemDelegate: Item {
            property bool isSelected: false

            // When user clicks on a cell, turn the isSelected flag on
            MouseArea {
                anchors.fill: parent
                onClicked: isSelected = !isSelected
            }


            Text {
                anchors.verticalCenter: parent.verticalCenter

                // If this cell is selected, color the text in blue
                color: isSelected ? "blue" : "black"

                text: styleData.value
            }
        }

请注意,TableViewsignals emitted 将不起作用,因为您的单元格正在接受鼠标事件。当然,如果需要,您可以轻松实现它们。

【讨论】:

  • 有用,谢谢!仍然缺少一种允许通过鼠标拖动进行选择的方法...
  • 如果你在单元格上定义DropArea应该是可能的
猜你喜欢
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多