Qt 设置QTableView的某列或某行只读

我的做法是实现一个委托(delegate),然后把它设给你要只读的列或行

cpp 复制代码
class ReadOnlyDelegate: public QItemDelegate
{
 
public:
    ReadOnlyDelegate(QWidget *parent = NULL):QItemDelegate(parent)
    {}
 
    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const override //final
    {
        Q_UNUSED(parent)
        Q_UNUSED(option)
        Q_UNUSED(index)
        return NULL;
    }
};

就是不返回任何editor。

然后去设置TableView对象的属性如下:

cpp 复制代码
ReadOnlyDelegate* readOnlyDelegate = new ReadOnlyDelegate();
ui->tableView->setItemDelegateForColumn(2, readOnlyDelegate); //设置某列只读
ui->tableView->setItemDelegateForRow(0, readOnlyDelegate);    //设置某行只读```

如果要将整个TableView设为只读模式,则只需下面一句即可:

cpp 复制代码
 ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
相关推荐
派葛穆5 分钟前
Python-pip切换镜像源
开发语言·python·pip
Full Stack Developme12 分钟前
Java 漏斗算法 及应用场景
java·开发语言·算法
阿里嘎多学长20 分钟前
2026-07-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
xxie12379435 分钟前
Python 闭包:函数嵌套的 “状态捕获” 机制
开发语言·python
骑士雄师38 分钟前
java面试记录: sychonized 锁,熔断组件,分布式锁
java·开发语言·面试
lilihuigz1 小时前
Meta Box完整指南:WordPress自定义字段与内容框架高效构建结构化内容 - 易服客工作室
java·开发语言
xxie1237941 小时前
Python 闭包的调用方法与实践
开发语言·python
aini_lovee1 小时前
计算 HOG算子的典型 MATLAB 程序
开发语言·matlab
楷哥爱开发1 小时前
降低网络爬虫成本:基础设施优化指南
服务器·开发语言·php
luoyayun3612 小时前
Qt/QML音视频文件原始十六进制查看器
qt·音视频·十六进制查看