任务:3x2的表格,第一个单元格显示当前时间

      

思考:

1.data函数里面QTime::currentTime()显示当前时间

2.但是这个事件是一个固定的时间,不会变动

3.需要时间变动,View就得每秒中都从Model中调用data函数。

4.这里就需要定时器。

5.定时器每秒发射1个信号。这个信号告诉View。Model中数据变了,你需要重新调用data()函数 获取最新的数据了。

代码如下:

mymodel.h

#ifndef MYMODEL_H
#define MYMODEL_H #include <QAbstractTableModel> class MyModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit MyModel(QObject *parent = );
QVariant data(const QModelIndex &index, int role) const;
int rowCount(const QModelIndex &parent) const;
int columnCount(const QModelIndex &parent) const;
signals: private slots:
void dataChange();
}; #endif // MYMODEL_H

mymodel.cpp

#include "mymodel.h"

#include <QTime>
#include <QTimer>
#include <QModelIndex> MyModel::MyModel(QObject *parent) :
QAbstractTableModel(parent)
{ QTimer *timer = new QTimer(this);
timer->setInterval();
timer->start(); connect(timer, SIGNAL(timeout()), this, SLOT(dataChange()));
} QVariant MyModel::data(const QModelIndex &index, int role) const
{
int row = index.row();
int col = index.column(); if(role == Qt::DisplayRole) {
if(row == && col == )
return QTime::currentTime(); } return QVariant();
} int MyModel::rowCount(const QModelIndex &parent) const
{
return ;
} int MyModel::columnCount(const QModelIndex &parent) const
{
return ;
} void MyModel::dataChange()
{
QModelIndex index = createIndex(, );
emit dataChanged(index, index);
}

main.cpp

#include "mymodel.h"

#include <QApplication>
#include <QTableView> int main(int argc, char *argv[])
{
QApplication a(argc, argv); QTableView *view = new QTableView;
MyModel *model = new MyModel; view->setModel(model);
view->show(); return a.exec();
}

10.model/view实例(3)的更多相关文章

  1. 10.model/view实例(2)

    任务:显示一个2x3的表格,将表格中的数据显示如下: 思考: 1.如何显示数据和上个例子一样. 2.但是每个单元格的数据都是有角色划分的. Qt::ItemDataRole 3.View从Model中 ...

  2. 10.model/view实例(1)

    1.如图显示一个2x3的表格: 思考: 1.QTableView显示这个表 2.QAbstractTableModel作为模型类. 3.文档中找到subclass的描述 When subclassin ...

  3. 10.model/view实例(4)

    任务:给表单的每一列添加列名. 思考: 1.只需要添加一个函数 headerData(). 横向方面添加列名 代码如下: QVariant MyModel::headerData(int sectio ...

  4. 11.树形Model/View实例

    任务1:显示如图的树形结构 思考: 1.使用QTreeView显示. 2.Model使用QStandardItemModel,qt的一个标准model. 3.QStandardItemModel下每一 ...

  5. 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

    在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...

  6. Qt Model/view 小实例 文件目录浏览器

    1. 文件目录浏览器 直接在main.cpp文件中添加下列代码 #include "mainwindow.h" #include <QApplication> #inc ...

  7. MVC(Model View Controller)框架

    MVC框架 同义词 MVC一般指MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...

  8. 利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理

    利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理   2018-3-10 15:18 | 发布:Admin | 分类:代码库 | 评论: ...

  9. 第15.27节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTreeWidget详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(It ...

随机推荐

  1. 201621123014《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答 ...

  2. xsl教程学习笔记

    一 . Hello world 尝试: Hello.xml: <?xml version="1.0" encoding="UTF-8"?> < ...

  3. 网络基础之网络协议篇---CS架构--网络通信--osi 协议---套接字socket--粘包

    1 C\S 客户端/服务器架构: .硬件 C/S架构 (打印机) .软件 C/S 架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务 ...

  4. unity3d IO操作

             前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写.当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位 ...

  5. 骨骼动画 cocos2d-x + cocoStudio <cocos2d-x : version 2.2.0>

    cocos2d-x version 2.2.0 首先,在 HelloWorldScene.cpp 中的 init()函数中 添加如下代码 (资源文件可以直接到 cocos2d-x 中获取) #incl ...

  6. LeetCode Predict the Winner

    原题链接在这里:https://leetcode.com/problems/predict-the-winner/description/ 题目: Given an array of scores t ...

  7. 使用python实现两个文件夹里文件的对比(包含内容的对比)

    #-*-coding:utf-8-*- #=============================================================================== ...

  8. Visualforce入门第三篇_2017.3.2

    Visualforce实现显示Record List(列表) 详细见链接:https://trailhead.salesforce.com/modules/visualforce_fundamenta ...

  9. svn-clearup 报错的处理(Cleanup failed to process the following paths...)

    在使用 svn 客户端执行操作失败后,执行 Clean up 操作也报错:Cleanup failed to process the following paths... ,一直不知道是什么原因.通常 ...

  10. Celery-4.1 用户指南: Daemonization (系统守护进程)

    Generic init-scripts 查看Celery发布里的 extra/generic-init.d/ 文件夹. 这个文件夹中包含了celery worker 程序的通用bash初始化脚本,可 ...