博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt中QTableView中加入Check列实现
阅读量:6688 次
发布时间:2019-06-25

本文共 1298 字,大约阅读时间需要 4 分钟。

 

class MyModel : public QSqlQueryModel {
Q_OBJECT
public:
MyModel(QObject *parent = 0);
Qt::ItemFlags flags(const QModelIndex &index) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
........
};
 
Qt::ItemFlags MyModel::flags(const QModelIndex &index) const {
Qt::ItemFlags flags = QSqlQueryModel::flags(index);
if (index.column() == aColWithCheckbox)
flags |= Qt::ItemIsUserCheckable;
else
flags |= Qt::ItemIsEditable;
return flags;
}
 
QVariant MyModel::data(const QModelIndex &index,  int role) const {
QVariant value = QSqlQueryModel::data(index, role);
if (role == Qt::CheckStateRole && index.column() == aColWithCheckbox)
return (QSqlQueryModel::data(index).toInt() != 0) ? Qt::Checked : Qt::Unchecked;
else
return value;
}
 

bool MyModel::setData( const QModelIndex & index, const QVariant & value, int role) 

    if(index.isValid() && role == Qt::CheckStateRole&&index.column()==0) 
    { 
        if(value.value<int>()==Qt::Checked) 
        { 
            m_config->setAutoRun(index.row(), true); 
        } 
        else 
        { 
            m_config->setAutoRun(index.row(), false); 
        } 
        emit dataChanged(index, index); 
        return true; 
    } 
    return false; 
}

转载于:https://www.cnblogs.com/Podevor/archive/2011/11/01/2788007.html

你可能感兴趣的文章
maven引入jar包问题导致项目无法启动,感叹号
查看>>
properties文件读写自己写的方法
查看>>
http升级https
查看>>
并查集(Union-Find)算法介绍
查看>>
MySQL主从配置
查看>>
8.6 管道符和作业控制
查看>>
java实现的web网络书店
查看>>
深入理解Plasma(四):Plasma Cash
查看>>
Shell脚本介绍(资源)
查看>>
SpringCloud SpringBoot 分布式微服务云架构 构建RESTful API
查看>>
查询改写参数配置
查看>>
Kubernetes 网络改进的三项实践分享
查看>>
SpringMVC的粗略整理(一)
查看>>
Visual Paradigm 教程[企业架构]:如何绘制ArchiMate图?
查看>>
Git 提交的正确姿势:Commit message 编写指南
查看>>
分享HTML5自动化构建工具gulp使用方法步骤
查看>>
PHP 包含文件
查看>>
BootStrap 资源汇总
查看>>
为Empathy增加QQ支持
查看>>
Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit:
查看>>