如何实现QTableView的混合选择模型

如何实现QTableView的混合选择模型,qt,Qt,我有一个自定义表视图,显示自定义抽象模型的内容。 我需要为这些视图实现混合选择 当用户单击第一列时,应选择整行(AbstractItemView::SelectRow)。 当用户单击其他列中的单元格时,只应选择特定的单元格(AbstractItemView::SelectItems) 要实现这种行为,需要做些什么?只需这样做: void MainWindow::on_tableView_clicked(const QModelIndex &index) { //if(!index

我有一个自定义表视图,显示自定义抽象模型的内容。 我需要为这些视图实现混合选择

当用户单击第一列时,应选择整行(AbstractItemView::SelectRow)。 当用户单击其他列中的单元格时,只应选择特定的单元格(AbstractItemView::SelectItems)

要实现这种行为,需要做些什么?

只需这样做:

void MainWindow::on_tableView_clicked(const QModelIndex &index)
{
    //if(!index.column()) more elegant
    if(index.column() == 0)
        ui->tableView->selectRow(index.row());
}
捕捉
clicked()
信号并检查它是否为第一列。如果是,则使用当前行(
index.row()
)选择行()


我在这里使用
QTableView
但是
qabstractemview
已经单击了
信号。

否,qabstractemview::SelectItems没有阻止selectRow,我设置了这个行为,但是我的示例仍然有效(如果我设置了selectColumns,那么它不起作用)因此,您做了一些错误的事情,或者将SelectionMode设置为QAbstractItemView::SingleSelection。如果是,请将其更改为QAbstractItemView::ExtendedSelectionThank,这是一个有效的解决方案。除了,我使用了pressed()信号,而不是clicked(),以获得更好的视觉效果。