QtQuick:允许在单元级别进行多次选择的视图

时间:2016-12-16 10:07:41

标签: qml qt-quick qtquickcontrols

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

我可以使用哪个QtQuick组件?

1 个答案:

答案 0 :(得分: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
            }
        }

请注意,signals emittedTableView无效,因为您的单元格正在接受鼠标事件。但是,如果您需要它们,当然可以轻松实现它们。