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

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



