Tianchi  v0.0.2 build 20130701
C++ library for Qt with VC & mingW
tcvariantmaptablemodel.h
浏览该文件的文档.
1 // **************************************************************************
2 // Tianchi C++ library for Qt (open source)
3 // 天池共享源码库
4 // 版权所有 (C) 天池共享源码库开发组
5 // 授权协议:请阅读天池共享源码库附带的授权协议
6 // **************************************************************************
7 // 文档说明:以QVariantMap作为数据行的model,只可追加和清除,不可插入与删除
8 // ==========================================================================
9 // 开发日志:
10 // 日期 人员 说明
11 // --------------------------------------------------------------------------
12 // 2013.06.07 XChinux 建立
13 //
14 // ==========================================================================
16 // ==========================================================================
17 #ifndef TIANCHI_TCVARIANTMAPTABLEMODEL_H
18 #define TIANCHI_TCVARIANTMAPTABLEMODEL_H
19 
20 #include <tianchi/tcglobal.h>
21 
22 #include <QVariantMap>
23 #include <QAbstractTableModel>
24 
25 enum
26 {
28  TcDataRole = Qt::UserRole + 999
29 };
30 
31 class TcVariantMapTableModelPrivate;
32 
84 class TIANCHI_API TcVariantMapTableModel : public QAbstractTableModel
85 {
86  Q_OBJECT
87 public:
88  TcVariantMapTableModel(QObject *parent = 0);
89  virtual ~TcVariantMapTableModel();
90 
91  // 继承实现部分开始-----------------
92  virtual Qt::ItemFlags flags(const QModelIndex &index) const;
93 
94  virtual QVariant data(const QModelIndex &index,
95  int role = Qt::DisplayRole) const;
96 
97  virtual QVariant headerData(int section, Qt::Orientation orientation,
98  int role = Qt::DisplayRole) const;
99 
100  virtual int rowCount(
101  const QModelIndex &parent = QModelIndex()) const;
102 
104  virtual int columnCount(
105  const QModelIndex &parent = QModelIndex()) const;
106 
107  virtual bool setData(const QModelIndex &index, const QVariant &value,
108  int role = Qt::EditRole);
109 
111  virtual bool setHeaderData(int section, Qt::Orientation orientation,
112  const QVariant &value, int role = Qt::EditRole);
113 
114  // 继承实现部分结束-----------------
115 
117  void setFlags(const QModelIndex &index, Qt::ItemFlags flags);
118 
120  void setCheckable(int row, int col, bool checkable);
121 
123  void setChecked(int row, int col, bool checked);
124 
126  bool isCheckable(int row, int col) const;
127 
129  bool isChecked(int row, int col) const;
130 
135  void addTitle(const QString &field, const QString &title,
136  int precision = -1);
137 
140  void addData(const QList<QVariantMap> &data);
141 
144  void addData(const QVariantMap &row);
145 
147  const QList<QVariantMap>& data() const;
148 
150  QVariantMap data(int row) const;
151 
153  const QList<QPair<QString, QString> >& title() const;
154 
156  QPair<QString, QString> title(int col) const;
157 
159  void setNumberColumn(const QString &field, int precision);
160 
162  void setNumberColumn(int column, int precision);
163 
165  void clearData();
166 
168  void clear();
169 private:
170  Q_DISABLE_COPY(TcVariantMapTableModel)
171  Q_DECLARE_PRIVATE(TcVariantMapTableModel)
172  TcVariantMapTableModelPrivate* const d_ptr;
173 };
174 
175 #endif // TIANCHI_TCVARIANTMAPTABLEMODEL_H