• 5264阅读
  • 2回复

[提问]QTableView中带CheckBox [复制链接]

上一主题 下一主题
离线isml
 

只看楼主 倒序阅读 楼主  发表于: 2012-03-15
QStandardItem可以直接设置使用CheckBox,不过我是想用另外一种方法实现
定义了一个类class CustomTableModel : public QStandardItemModel,然后覆盖了flags方法:
Qt::ItemFlags CustomTableModel::flags(const QModelIndex &index) const
{
    if(! index.isValid())
    {
        return 0;
    }
    Qt::ItemFlags flags = QStandardItemModel::flags(index);
    int nColIndex = index.column();
    if(nColIndex == 0)
    {
        flags |= Qt::ItemIsUserCheckable;
    }
    return flags;
}

再覆盖data方法,在其中判断:

    case Qt::CheckStateRole:
        {
            if(nColIndex == 0)
            {
                return Qt::Checked;
            }
            return QStandardItemModel::data(index, role);
        }
        break;

现在可以正常显示CheckBox,但问题是这个CheckBox无法点击。据说需要再覆盖setData方法。请了解的朋友说明一下,多谢。
离线isml

只看该作者 1楼 发表于: 2012-03-16
有人用过吗?
离线tadpole999

只看该作者 2楼 发表于: 2015-02-05
顶你。。我想用,不会啊。
快速回复
限100 字节
 
上一个 下一个