QT中表格QTableView内Checkbox的Model实现方法

QT中表格QTableView内Checkbox的Model实现方法

原帖

http://www.qtcentre.org/threads/4147-QTableView-with-a-checkbox 

  1. class MyModel : public QSqlQueryModel {
  2. Q_OBJECT
  3. public:
  4. MyModel(QObject *parent = 0);
  5. Qt::ItemFlags flags(const QModelIndex &index) const;
  6. QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
  7. ........
  8. };
  9.  
  10. Qt::ItemFlags MyModel::flags(const QModelIndex &index) const {
  11. Qt::ItemFlags flags = QSqlQueryModel::flags(index);
  12. if (index.column() == aColWithCheckbox)
  13. flags |= Qt::ItemIsUserCheckable;
  14. else
  15. flags |= Qt::ItemIsEditable;
  16. return flags;
  17. }
  18.  
  19. QVariant MyModel::data(const QModelIndex &index, int role) const {
  20. QVariant value = QSqlQueryModel::data(index, role);
  21. if (role == Qt::CheckStateRole && index.column() == aColWithCheckbox)
  22. return (QSqlQueryModel::data(index).toInt() != 0) ? Qt::Checked : Qt::Unchecked;
  23. else
  24. return value;
  25. }
 

posted @ 2010-03-29 01:10  Bobyguo  阅读(4882)  评论(0)    收藏  举报