mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2024-11-23 20:10:48 +08:00
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
#include "mymodel.h"
|
|
|
|
#include <QTime>
|
|
|
|
//! [quoting mymodel_a]
|
|
MyModel::MyModel(QObject *parent)
|
|
: QAbstractTableModel(parent)
|
|
, timer(new QTimer(this))
|
|
{
|
|
timer->setInterval(1000);
|
|
connect(timer, &QTimer::timeout , this, &MyModel::timerHit);
|
|
timer->start();
|
|
}
|
|
//! [quoting mymodel_a]
|
|
//-------------------------------------------------------
|
|
int MyModel::rowCount(const QModelIndex & /*parent */) const
|
|
{
|
|
return 2;
|
|
}
|
|
|
|
//-------------------------------------------------------
|
|
int MyModel::columnCount(const QModelIndex & /*parent */) const
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
//-------------------------------------------------------
|
|
//! [quoting mymodel_QVariant ]
|
|
QVariant MyModel::data(const QModelIndex &index, int role) const
|
|
{
|
|
int row = index.row();
|
|
int col = index.column();
|
|
|
|
if (role == Qt::DisplayRole && row == 0 && col == 0)
|
|
return QTime::currentTime().toString();
|
|
|
|
return QVariant();
|
|
}
|
|
//! [quoting mymodel_QVariant ]
|
|
//-------------------------------------------------------
|
|
//! [quoting mymodel_b ]
|
|
void MyModel::timerHit()
|
|
{
|
|
// we identify the top left cell
|
|
QModelIndex topLeft = createIndex(0,0);
|
|
// emit a signal to make the view reread identified data
|
|
emit dataChanged(topLeft, topLeft, {Qt::DisplayRole});
|
|
}
|
|
//! [quoting mymodel_b ]
|