折腾了好几天,终于把这本书的第三章和第四章给看了个大概。

里面的函数调用关系可谓是复杂。

整理了一部分的函数关系如下:

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的功能主要是界面的显示 界面按钮与功能的对接

最新文章

  1. Filter实现用户名验证
  2. Android 自定义Application
  3. Java 内存区域划分
  4. linux网络配置相关命令、虚拟网络接口eth0:0
  5. Machine Learning in Action -- Logistic regression
  6. visual studio 2013 快捷键大全、VS2013常用快捷键
  7. 2.Adding a Controller
  8. Bzoj 4556: [Tjoi2016&Heoi2016]字符串
  9. Maven基础教程
  10. vue2重写饿了么
  11. Android Tv 中的按键事件 KeyEvent 分发处理流程
  12. cocos2dx - v2.3.3编辑器简单使用及不同分辨率适配
  13. 2301: [HAOI2011]Problem b ( 分块+莫比乌斯反演+容斥)
  14. day 13 迭代器、可迭代对象、迭代器对象、生成器、生成器对象、枚举对象
  15. identityserver4 代码系列
  16. python3基础概念
  17. 列出下面几项的URL并解释每部分代表的含义
  18. Jquery中click事件重复执行的问题
  19. Django_博客_XSS 攻击防范
  20. 解决spring boot JavaMailSender部分收件人错误导致发送失败的问题

热门文章

  1. 【开源一个小工具】一键将网页内容推送到Kindle
  2. PHP 数组的遍历的几种方式(以及foreach与for/while+each效率的比较)
  3. html 图像映射
  4. 网络编程2-UDP编程(DatagramSocket)
  5. 如何居中一个div?
  6. php服务端写日志文件
  7. JQ库函数记忆要点
  8. 2016年10月27日--css样式表
  9. HDU 3535 分组混合背包
  10. echart字符云之添加点击事件