开发经历心得记录---后期再做整理
2020-08-05在827开发两个月来,网络使用不便, 把一些经验和领悟整理在公司笔记本, fuck的是,昨天无欲无故加密软件登录不上了, 备加密的文档也就看不到了。
现在直接写在博客上,回头再做整理。
问题: QItemSelectionModel的两个信号 currentChanged, selectionChanged, 当在视图上单击选择,或者shift、Ctrl组合选择更新选择项时,这两个信号会被同时发出吗?
结论:都要执行
知识点:Qt自定义类型 与 元对象系统; 信号槽机制
现象: 声明信号时,参数是否是自定义类型,不需要注册元对象系统。
场景: QTreeView 子类构造函数中,访问 QItemSelectionModel 对象为空指针。需要在QTreeView子类初始化之后,才能使用QItemSelectionModel。
场景:窗口及时刷新。
尝试:update()、paintEvent() 都无效
方案:requestUpdate();
场景:视图在视图上滑动,引起的项的高亮,并不是当前项更改了。 只有当, 点击某一项,或选择区域更改,当前项才会改变。
注意点:监视鼠标滑动事件,需要使能QWidget::mouseTracking属性。 为了效率和不必要的资源浪费,应该在不需要监控鼠标滑动的时候,去使能QWidget::mouseTracking属性
场景:视图上滑动鼠标, 鼠标光标所在的项会高亮。 但是我想, 通过代码实现指定某一行(一项或多项)的高亮。 如何实现呢?
思绪点滴:qss能完成鼠标悬停时的自定义显示效果。 但是, 鼠标光标某一时刻,仅会悬停在某一项上, 这时候,我想一整行都高亮, 就无从下手了。
场景:QAbstractItemModel::data 的 关于需要颜色的角色, 返回值类型要QBrush, 而非QColor。 独特的是, Qt枚举的一些颜色值是可以生效的。