mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-04 16:25:27 +08:00
qt 6.5.1 original
This commit is contained in:
@ -0,0 +1,15 @@
|
||||
TARGET = mv_changingmodel
|
||||
|
||||
TEMPLATE = app
|
||||
|
||||
QT += widgets
|
||||
requires(qtConfig(tableview))
|
||||
|
||||
SOURCES += main.cpp \
|
||||
mymodel.cpp
|
||||
|
||||
HEADERS += mymodel.h
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tutorials/modelview/3_changingmodel
|
||||
INSTALLS += target
|
@ -0,0 +1,37 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(mv_changingmodel LANGUAGES CXX)
|
||||
|
||||
if(NOT DEFINED INSTALL_EXAMPLESDIR)
|
||||
set(INSTALL_EXAMPLESDIR "examples")
|
||||
endif()
|
||||
|
||||
set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tutorials/modelview/3_changingmodel")
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
|
||||
|
||||
qt_standard_project_setup()
|
||||
|
||||
qt_add_executable(mv_changingmodel
|
||||
main.cpp
|
||||
mymodel.cpp mymodel.h
|
||||
)
|
||||
|
||||
set_target_properties(mv_changingmodel PROPERTIES
|
||||
WIN32_EXECUTABLE TRUE
|
||||
MACOSX_BUNDLE TRUE
|
||||
)
|
||||
|
||||
target_link_libraries(mv_changingmodel PRIVATE
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
install(TARGETS mv_changingmodel
|
||||
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
|
||||
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
|
||||
LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
|
||||
)
|
@ -0,0 +1,16 @@
|
||||
// Copyright (C) 2016 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#include <QApplication>
|
||||
#include <QTableView>
|
||||
#include "mymodel.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
QTableView tableView;
|
||||
MyModel myModel;
|
||||
tableView.setModel(&myModel);
|
||||
tableView.show();
|
||||
return a.exec();
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
// 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 ]
|
@ -0,0 +1,27 @@
|
||||
// Copyright (C) 2016 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#ifndef MYMODEL_H
|
||||
#define MYMODEL_H
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
#include <QTimer>
|
||||
|
||||
class MyModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MyModel(QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
|
||||
private slots:
|
||||
void timerHit();
|
||||
|
||||
private:
|
||||
QTimer *timer;
|
||||
};
|
||||
|
||||
#endif // MYMODEL_H
|
Reference in New Issue
Block a user