31 Mayıs 2018 Perşembe

QTableView Sınıfı

Giriş
Şu satırı dahil ederiz
#include <QtWidgets/QTableView>
setModel metodu
Parametre olarak QAbstractItemModel*  vermek gerekir.
Örnek
Şöyle yaparız.
auto tableView = new QTableView();

MyModel myModel...;
tableView->setModel(&myModel);
Örnek
Şöyle yaparız.
QStandardItemModel *myModel = ...;
QTableView *tableView = ...
tableView->setModel(myModel);
setSelectionMode metodu
Şöyle yaparız.
tableView->setSelectionMode(QAbstractItemView::NoSelection);

QAbstractTableModel Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <QAbstractTableModel>
columnCount metodu
Şöyle yaparız.
int columnCount(const QModelIndex &parent = QModelIndex()) const override {
  return 3;
}
data metodu
Şöyle yaparız.
QVariant data(const QModelIndex &index,int role = Qt::DisplayRole) const override {
  if (role == Qt::DisplayRole) {
    return QString("Row%1, Column%2").arg(index.row() + 1).arg(index.column() + 1);
  }
  return QVariant();
}
headerData metodu
Şöyle yaparız.
QVariant headerData(int section, Qt::Orientation orientation,int role) const override {
  if (role == Qt::DisplayRole) {
    if (orientation == Qt::Horizontal) {
      switch (section) {
        case 0:
          return QString("first");
        case 1:
          return QString("second");
        case 2:
          return QString("third");
      }
    }
  }
  return QVariant();
}
rowCount metodu
Şöyle yaparız.
int rowCount(const QModelIndex &parent = QModelIndex()) const override {
  return 100;
}
Diğer
Elimizde şöyle bir kod olsun.
class MyModel : public QAbstractTableModel {
...
}
QTableView ile kullanmak için şöyle yaparız.
auto tableView = new QTableView ();

MyModel myModel = ...
tableView->setModel(&myModel);