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 ...
随机推荐
- Ubuntu 安装arm-linux-gcc编译器
/********************************************************************************** * Ubuntu 安装arm-l ...
- LeetCode 333. Largest BST Subtree
原题链接在这里:https://leetcode.com/problems/largest-bst-subtree/ 题目: Given a binary tree, find the largest ...
- 新的开发域名 fastadmin.tk
新的开发域名 fastadmin.tk 这个的所有子域名批向 127.0.0.1,可以用于开发. 以后不用再修改系统的 hosts. 使用案例 手把手教你安装 FastAdmin 到虚拟主机 (php ...
- Eclipse jar包源码下载
在使用intelliJ的时候,可以在IDE中直接下载jar包: Eclipse也可以!就是插件Java Source Attacher 这个插件是放在eclipse安装目录的dropins目录下.重启 ...
- Proxmox qm命令应用实例
1) 把一个物理硬盘增加到VM上qm set 105 --virtio1 /dev/sdb <-- 表示把/dev/sdb物理硬盘以 virtio 接口类型增加至 105 的 ...
- wpf中为DataGrid添加checkbox支持多选全选
项目中用到DataGrid, 需要在第一列添加checkbox, 可以多选.全选. 其中涉及的概念DataTemplate, DataGridCellStyle, DataGridCellContro ...
- eclipse -- propedit 安装.
SSH 项目中.用到国际化文件,Message.properties 但里面的文本都是 unicode 格式的,用起来不谁.而且也不想通过其它工具转码来使用. 可以通过安装 eclipse 的 pro ...
- Java多线程中的常用方法
本文将带你讲诉Java多线程中的常用方法 Java多线程中的常用方法有如下几个 start,run,sleep,wait,notify,notifyAll,join,isAlive,current ...
- Windows条件变量
详细见MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686903%28v=vs.85%29.aspx 我们已经看到,当想 ...
- Shell编程进阶 1.6 if判断的几种用法
针对文件和目录的逻辑判断 touch .txt .txt ]; then echo ok;fi -f 判断1.txt是否是文件且是否存在,成立输出ok if [-d /tmp/ ]; then ech ...