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