自定义视图与通用委托的实现与应用
1. 自定义视图中的按键处理
在自定义视图中,我们选择仅支持两种按键操作:向上箭头和向下箭头。当用户按下这两个按键时,会执行以下操作:
- 递增或递减所选行。
- 确保所选行在有效范围内。
- 安排一次绘制事件。
如果用户导航到最顶部可见行之上或最底部可见行之下,会通知滚动区域确保滚动到的行可见,必要时滚动区域会进行滚动操作。同时,会发出一个 clicked() 信号,携带新选中行的模型索引。对于其他按键,会将事件传递给基类处理。
self.emit(SIGNAL("clicked(QModelIndex)"),
self.model.index(self.selectedRow, 0))
else:
QWidget.keyPressEvent(self, event)
2. 水质视图的特点
水质视图与旁边的表格视图在视觉上有很大差异,但实现所需的代码并不多,编程难度也不大。通过减少不必要的绘制,使该小部件相当高效。同时,确保小部件的大小恰好能显示整个数据集,让绘制代码尽可能简单。不过,这种方法将使用 QScrollArea 的责任推给了使用该小部件的程序员,但也避免了自己实现滚动功能。
水质视图与模型中的数据是一一对应的,但我们也可以创建显示聚合数据的自定义视图,例如按天或按小时显示一个条目,可能通过对每天或每小时的读数求平均值来实现。
超级会员免费看
订阅专栏 解锁全文
1114

被折叠的 条评论
为什么被折叠?



