【QT】C++ GUI Qt4 学习笔记5
折腾了好几天,终于把这本书的第三章和第四章给看了个大概。
里面的函数调用关系可谓是复杂。
整理了一部分的函数关系如下:
cell关系清理 data(role) 返回应该显示的值 或者对齐方式 或者公式
->value() 单元格的值,如果是旧的就重新获得 值给cachedValue并返回 对输入的以‘开头和 = 开头的做特殊处理
->formula() 获得单元格的Edit role
->data(Edit role)
->evalExpression() 计算表达式的值 setFormula(formula) //设置单元格的公式
-> setData(EditRole, formula) 对编辑角色调用setData
-> QTableWidgetItem::setData(role value) 将单元格 用给定的公式 以给定的值 赋值
->setDirty() 如果赋值的是EditRole 把值设为旧的 问题:
??data()在哪里被调用
Qt::DisplayRole
Qt::TextAlignmentRole 还在哪里出现过
??QTableWigetItem 中 text() 和 data()的区别
??把值设为旧的有什么用处?
spreadsheet关系清理 Spreadsheet()
|->QTableWidget::setItemPrototype(new Cell) //设置每个单元格的类型
|->SelectionMode() //设置选择模式 Qt自带
|->somethingChanged() //槽函数
| |->recalculate() //重新计算
| | |->cell() //把单元格转换为Cell形式
| | | ->QTableWidget::item()
| | |->Cell::setDirty() //把所有有值的都设为旧的
| | |->viewport()->update() 更新 ??
| |
| |->modified() //信号
|
|->clear() //清空整张表
|->setRowCount(0)
|->setColumnCount(0)
|->setRowCount(RowCount); //设置有多少行 Qt自带
|->setColumnCount(ColumnCount); //设置有多少列 Qt自带 setAutoRecalculate() //如果自动重算是true就调用下面算子
->recalculate()
里面有些问题我还没有想通。标了问号。
对于这些模块,从小到大整理一下:
最小的是 QTableWigetItem 就是二维表格QTableWidget的自带单元格的表示,但是输入什么就显示什么,没有什么功能
然后是 Cell 是扩展的QTableWigetItem 里面加入了对特殊输入的格式处理和表达式计算功能
再后是 spreadsheet扩展自二维表格QTableWidget 采用了Cell, 加入了复制、 粘贴、 查找、 排序、 保存、 读取的功能。
最后是 MainWindow的功能主要是界面的显示 界面按钮与功能的对接
【QT】C++ GUI Qt4 学习笔记5的更多相关文章
- C++ GUI Qt4学习笔记01
C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...
- C++ GUI Qt4学习笔记03
C++ GUI Qt4学习笔记03 qtc++spreadsheet文档工具resources 本章介绍创建Spreadsheet应用程序的主窗口 1.子类化QMainWindow 通过子类化QM ...
- C++ GUI Qt4学习笔记08
C++ GUI Qt4学习笔记08 qtc++signal图形引擎文档 本章介绍Qt的二维图形引擎,Qt的二维图形引擎是基于QPainter类的.<span style="colo ...
- C++ GUI Qt4学习笔记09
C++ GUI Qt4学习笔记09 qtc++ 本章介绍Qt中的拖放 拖放是一个应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式.除了剪贴板提供支持外,通常它还提供数据移动和复制的功 ...
- C++ GUI Qt4学习笔记05
C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator -- 只让用户输入整数 QDoubleValidator -- 只让用户输入浮 ...
- C++ GUI Qt4学习笔记07
C++ GUI Qt4 qtc++scrollobject编程 事件(event)是由串口系统或者Qt自身产生的,用以响应所发生的各类事情.当用户按下或者松开键盘或者鼠标上的按键时,就可以产生一个 ...
- 【QT】C++ GUI Qt4 学习笔记1
Find对话框实现 平台 Qt5.3.2 MinGW4.8.2 注意创建时用QDialog finddialog.h #ifndef FINDDIALOG_H #define FINDDIALOG_H ...
- 【QT】C++ GUI Qt4 学习笔记2
Go To Cell 利用QT Desinger做好界面后加入的代码有 gotocelldialog.h #ifndef GOTOCELLDIALOG_H #define GOTOCELLDIALOG ...
- 【QT】C++ GUI Qt4 学习笔记3
菜单界面的实现. 看书上第三章,好长,好多代码.我敲了半天,想看看效果,结果却显示不出来.仔细一看,发现spreadsheet的实现在第四章.郁闷.... 又到官网上下代码,结果居然不能运行.难道是因 ...
- 【QT】C++ GUI Qt4 学习笔记4
感觉这本书的顺序设计的太不合理了,出现的最多的一句话就是后面会讲.按照使用的顺序讲不行吗?搞得代码都运行不了. 我决定先直接跳到73页,子类化QTableWidgetItem这一节.因为前面功能的实现 ...
随机推荐
- Apache CXF初级介绍(一)
Web Service做项目必不可少 一.CXF安装 二.用Ant来创建项目 三.用Maven来创建项目 四.用Eclipse来创建项目 五
- XMAL语法系列之-(2)---WPF控件继承图
WPF控件继承图 1 FrameworkElement 1.1 Panel(面板类元素) 1.1.1 Canvas 1.1.2 DockPanel 1.1.3 Grid 1.1.4 TabPanel ...
- web网页颜色色谱
snow 255 250 250 #fffafa ghostwhite 248 248 255 #f8f8ff whitesmoke 245 245 245 #f5f5f5 gainsboro 220 ...
- [译]A Beginner’s Guide to npm — the Node Package Manager
原文: http://www.sitepoint.com/beginners-guide-node-package-manager/ Installing Node.js 验证你的安装是否成功. $ ...
- Reflect(欧拉函数)
Reflect Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- 内网安全工具之hscan扫描
工具下载地址:hscan1.2.zip 界面简单,看配置: 这里我们主要需要配置的是模块和参数 模块,按照默认配置就行,取消 check HTTP vulnerability(漏洞检测) 会更快一点. ...
- ajax 载入html后不能执行其中的js解决方法
事件背景 有一个公用页面需要在多个页面调用,其中涉及到部分js已经写在了公用页面中,通过ajax加载该页面后无法执行其中的js. 解决思路 1. 采用附加一个iframe的方法去执行js,为我等代码洁 ...
- Linux环境变量的添加设置
以前一直都记着的,后来做的事情多了就什么都忘的差不多了. 在Linux中,环境变量一般添加有这么几个地方: 1./etc/profile 这个目录设置的变量为整个系统的全局变量,所有的用户通用,一般不 ...
- NOIP2015 斗地主
Sol 暴力搜索...不用搜1,2张的情况,直接统计出来就可以了. 还有处理一下2和大王小王的位置,扔到最后面或者最前面就可以了. 搜索就搜 3+3,2+2+2,1+1+1+1+1 这三个就可以了. ...
- putty如何使用
使用putty连接管理centos 1 双击putty.exe2 和linux命令行一样了 使用psftp上传和下载 cd d:/psftppsftp open 10.0.0.9 输入用户密码root ...