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   Tim002  阅读(886)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示