• 6570阅读
  • 3回复

给Tableview添加复选框,但不响应操作,求解! [复制链接]

上一主题 下一主题
离线sunvim
 

只看楼主 倒序阅读 楼主  发表于: 2011-11-03
关键词: tableviewcheckbox
没有采用 委托的办法,继承了QSqlTableModel类,自己写的Model(从国外的一个网站获取的思路);

应该要重载setData函数,就不知道 怎么写……

#include "mymodel.h"

myModel::myModel(QObject *parent)
{
    aColWithCheckbox = 0;
}
Qt::ItemFlags myModel::flags(const QModelIndex &index) const {
    Qt::ItemFlags flags = QSqlTableModel::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 = QSqlTableModel::data(index, role);

  if (role == Qt::CheckStateRole && index.column() == aColWithCheckbox)
    return (QSqlTableModel::data(index).toInt() != 0) ?  Qt::Unchecked: Qt::Checked;
  else
    return value;
}上面是实现代码;下面是效果图:
离线linbosmile
只看该作者 1楼 发表于: 2011-11-03
设置一下ITEM的setFlags ( Qt::ItemFlags flags )中的Qt::ItemIsUserCheckable    16    It can be checked or unchecked by the user.
离线sunvim

只看该作者 2楼 发表于: 2011-11-03
引用第1楼linbosmile于2011-11-03 20:52发表的  :
设置一下ITEM的setFlags ( Qt::ItemFlags flags )中的Qt::ItemIsUserCheckable    16    It can be checked or unchecked by the user.


能具体一下么?我在flags中已经设置了 返回 Qt::ItemIsUserCheckable  了呀?
离线weihua1984

只看该作者 3楼 发表于: 2011-12-11
icon?
快速回复
限100 字节
 
上一个 下一个