10.model/view实例(2)
任务:显示一个2x3的表格,将表格中的数据显示如下:

思考:
1.如何显示数据和上个例子一样。
2.但是每个单元格的数据都是有角色划分的。 Qt::ItemDataRole
3.View从Model中获取数据,通过data函数。每一个单元格根据角色,调用多次data函数。个人理解:单元格什么角色都调用一次data函数。
代码如下:就是修改data函数的代码。
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 QString ("Row%1,Column%2").arg(index.row()+).arg(index.column()+);
if(row == && col == )
return QString ("Row%1,Column%2").arg(index.row()+).arg(index.column()+);
if(row == && col == )
return QString ("Row%1,Column%2").arg(index.row()+).arg(index.column()+);
if(row == && col == )
return QString ("Row%1,Column%2").arg(index.row()+).arg(index.column()+);
if(row == && col == )
return QString ("<--left");
if(row == && col == )
return QString ("right-->");
} if(role == Qt::FontRole) {
if(row == && col == ) {
QFont bold;
bold.setBold(true);
return bold;
}
} if(role == Qt::TextAlignmentRole) {
if(row == && col == )
return Qt::AlignLeft + Qt::AlignVCenter;
if(row == && col == )
return Qt::AlignRight + Qt::AlignVCenter;
} if(role == Qt::BackgroundColorRole) {
if(row == && col == )
return Qt::red;
} if(role == Qt::CheckStateRole) {
if(row == && col == )
return Qt::Checked;
} return QVariant();
}
10.model/view实例(2)的更多相关文章
- 10.model/view实例(3)
任务:3x2的表格,第一个单元格显示当前时间 思考: 1.data函数里面QTime::currentTime()显示当前时间 2.但是这个事件是一个固定的时间,不会变动 3.需要时间变动,View就 ...
- 10.model/view实例(1)
1.如图显示一个2x3的表格: 思考: 1.QTableView显示这个表 2.QAbstractTableModel作为模型类. 3.文档中找到subclass的描述 When subclassin ...
- 10.model/view实例(4)
任务:给表单的每一列添加列名. 思考: 1.只需要添加一个函数 headerData(). 横向方面添加列名 代码如下: QVariant MyModel::headerData(int sectio ...
- 11.树形Model/View实例
任务1:显示如图的树形结构 思考: 1.使用QTreeView显示. 2.Model使用QStandardItemModel,qt的一个标准model. 3.QStandardItemModel下每一 ...
- 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...
- Qt Model/view 小实例 文件目录浏览器
1. 文件目录浏览器 直接在main.cpp文件中添加下列代码 #include "mainwindow.h" #include <QApplication> #inc ...
- MVC(Model View Controller)框架
MVC框架 同义词 MVC一般指MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...
- 利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理
利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理 2018-3-10 15:18 | 发布:Admin | 分类:代码库 | 评论: ...
- 第15.27节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTreeWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(It ...
随机推荐
- asp.net core mcroservices 架构之 分布式日志(一)
一 简介 无论是微服务还是其他任何分布式系统,都需要一个统一处理日志的系统,这个系统 必须有收集,索引,分析查询的功能.asp .net core自己的日志是同步方式的,正如文档所言: 所以必须自己提 ...
- java 实现插入排序
sorted数组第0个位置没有放数据 从sorted数组的第二个数据开始处理 package com.learn; public class InsertionSort { public static ...
- 基于Python语言使用RabbitMQ消息队列(一)
介绍 RabbitMQ 是一个消息中间人(broker): 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮筒里时, 你可以确定邮递员会把信件送到收信人那里. 在这个比喻中, ...
- Dubbo与Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- MyEclipse启动tomcat增加内存配置
omcat增加内存在catalina.bat下 MyEclipse增加内存 设置Window->Preferences->Application Servers->Tomcat -- ...
- 序章:为什么学习使用kotlin、及kotlin的一些碎碎念
为什么使用kotlin? 当然是因为项目目前的开发语言是kotlin啊! 一方面是想能够尽快适应项目,另一方面,kotlin这门语言独特的语法,确实很吸引我,也让我意识到java代码在某些程度上的繁琐 ...
- IP Fragmentation(IP分片)
https://www.cisco.com/c/en/us/tech/ip/index.html IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组,这一过程称为分片(Fr ...
- WebSocket --为什么引入WebSocket协议
Browser已经支持http协议,为什么还要开发一种新的WebSocket协议呢?我们知道http协议是一种单向的网络协议,在建立连接后,它只允许Browser/UA(UserAgent)向WebS ...
- Attribute注解(用于判断权限)
一 Attribute原理: Attribute注解,是附加上方法.属性.类等上面的标签,可以通过方法的GetCustomAttribute获得粘贴的这个Attribute对象通过反射调用到粘贴到属 ...
- Linq使用小记之Group By
private void cmbStore_SelectedIndexChanged(object sender, EventArgs e) { DataTable vDt = ParamClass. ...