获取qml中选中复选框的行索引
Get row index of checked checkbox in qml
我在 TableView 中填充了文本。其中一列有复选框作为代表。我选中其中一个复选框。如何获取当前复选框的行索引?
为了获取行索引,我使用了 currentRow 函数,但它 returns -1 因为当我选中复选框时,我没有 select 行。
有没有其他方法获取复选框行索引?
这样做的可能性太多了。其中之一的一些非常简单的例子:
import QtQuick 2.7
import QtQuick.Window 2.0
import QtQuick.Controls 1.4
Window {
visible: true
width: 300
height: 200
TableView {
id: table
anchors.fill: parent
signal checked(int row, int col, bool isChecked)
TableViewColumn { role: "col1"; title: "Columnt1"; width: 100 }
TableViewColumn { role: "col2"; title: "Columnt2"; width: 100 }
TableViewColumn { role: "col3"; title: "Columnt3"; width: 100 }
model: ListModel {
ListElement { col1: true; col2: false; col3: false }
ListElement { col1: false; col2: false; col3: true }
ListElement { col1: true; col2: false; col3: true }
}
itemDelegate: Item {
CheckBox {
anchors.centerIn: parent
checked: styleData.value
onClicked: {
table.selection.clear();
table.selection.select(styleData.row);
table.currentRow = styleData.row;
table.checked(styleData.row, styleData.column, checked);
}
}
}
onChecked: console.log(row, col, isChecked);
}
}
我在 TableView 中填充了文本。其中一列有复选框作为代表。我选中其中一个复选框。如何获取当前复选框的行索引?
为了获取行索引,我使用了 currentRow 函数,但它 returns -1 因为当我选中复选框时,我没有 select 行。
有没有其他方法获取复选框行索引?
这样做的可能性太多了。其中之一的一些非常简单的例子:
import QtQuick 2.7
import QtQuick.Window 2.0
import QtQuick.Controls 1.4
Window {
visible: true
width: 300
height: 200
TableView {
id: table
anchors.fill: parent
signal checked(int row, int col, bool isChecked)
TableViewColumn { role: "col1"; title: "Columnt1"; width: 100 }
TableViewColumn { role: "col2"; title: "Columnt2"; width: 100 }
TableViewColumn { role: "col3"; title: "Columnt3"; width: 100 }
model: ListModel {
ListElement { col1: true; col2: false; col3: false }
ListElement { col1: false; col2: false; col3: true }
ListElement { col1: true; col2: false; col3: true }
}
itemDelegate: Item {
CheckBox {
anchors.centerIn: parent
checked: styleData.value
onClicked: {
table.selection.clear();
table.selection.select(styleData.row);
table.currentRow = styleData.row;
table.checked(styleData.row, styleData.column, checked);
}
}
}
onChecked: console.log(row, col, isChecked);
}
}