解决思路:采用QTableView双击事件,根据QModelIndex参数获取当前行或着列,使用setEditTriggers设置列或行是否可编辑。
1.设置双击信号 connect(yx101TableView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotRowDoubleClicked(const QModelIndex &))); 2.实现双击槽函数 void MainWindow::slotRowDoubleClicked(const QModelIndex mQModelIndex) { //设置第0、1、4列不可编辑 if(mQModelIndex.column() == 0 || mQModelIndex.column() == 1 || mQModelIndex.column() == 4) { yx101TableView->setEditTriggers(QAbstractItemView::NoEditTriggers); }else { yx101TableView->setEditTriggers(QAbstractItemView::DoubleClicked); } }