mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-01-23 20:34:31 +08:00
66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
|
// Copyright (C) 2016 The Qt Company Ltd.
|
||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||
|
|
||
|
#include "mymodel.h"
|
||
|
|
||
|
#include <QFont>
|
||
|
#include <QBrush>
|
||
|
#include <QDebug>
|
||
|
|
||
|
MyModel::MyModel(QObject *parent)
|
||
|
: QAbstractTableModel(parent)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
int MyModel::rowCount(const QModelIndex & /*parent */) const
|
||
|
{
|
||
|
return 2;
|
||
|
}
|
||
|
|
||
|
int MyModel::columnCount(const QModelIndex & /*parent */) const
|
||
|
{
|
||
|
return 3;
|
||
|
}
|
||
|
|
||
|
//! [Quoting ModelView Tutorial]
|
||
|
// mymodel.cpp
|
||
|
QVariant MyModel::data(const QModelIndex &index, int role) const
|
||
|
{
|
||
|
int row = index.row();
|
||
|
int col = index.column();
|
||
|
// generate a log message when this method gets called
|
||
|
qDebug() << QString("row %1, col%2, role %3")
|
||
|
.arg(row).arg(col).arg(role);
|
||
|
|
||
|
switch (role) {
|
||
|
case Qt::DisplayRole:
|
||
|
if (row == 0 && col == 1) return QString("<--left");
|
||
|
if (row == 1 && col == 1) return QString("right-->");
|
||
|
|
||
|
return QString("Row%1, Column%2")
|
||
|
.arg(row + 1)
|
||
|
.arg(col +1);
|
||
|
case Qt::FontRole:
|
||
|
if (row == 0 && col == 0) { // change font only for cell(0,0)
|
||
|
QFont boldFont;
|
||
|
boldFont.setBold(true);
|
||
|
return boldFont;
|
||
|
}
|
||
|
break;
|
||
|
case Qt::BackgroundRole:
|
||
|
if (row == 1 && col == 2) // change background only for cell(1,2)
|
||
|
return QBrush(Qt::red);
|
||
|
break;
|
||
|
case Qt::TextAlignmentRole:
|
||
|
if (row == 1 && col == 1) // change text alignment only for cell(1,1)
|
||
|
return int(Qt::AlignRight | Qt::AlignVCenter);
|
||
|
break;
|
||
|
case Qt::CheckStateRole:
|
||
|
if (row == 1 && col == 0) // add a checkbox to cell(1,0)
|
||
|
return Qt::Checked;
|
||
|
break;
|
||
|
}
|
||
|
return QVariant();
|
||
|
}
|
||
|
//! [Quoting ModelView Tutorial]
|