QT QTableView 解决某列或某行不可编辑

 

解决思路:采用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);
    }
}

 

posted on 2022-03-29 14:12  Tim002  阅读(1146)  评论(0)    收藏  举报