高级模型/视图编程、在线帮助与国际化
1. 树状结构中的表格数据表示
理解树模型比理解表格模型(或列表模型,列表模型可看作只有一列的表格)更具挑战性。不过,在很多情况下,借助或修改相关代码能降低难度。
PyQt 内置的视图小部件和图形视图小部件为数据集的可视化提供了很大的空间。当这些类无法满足需求时,我们可以创建自定义视图,按照自己的方式展示数据。
由于自定义视图可能要显示大数据集的一部分,通常最好优化绘制事件处理程序,只检索和显示实际可见的数据项。若需要滚动条,可让视图类的用户使用 QScrollArea ,或创建带有 QScrollBar 的复合小部件,或创建继承 QAbstractScrollArea 的小部件。第一种方法只需在用户代码中添加几行,能让视图的实现更简单。
使用通用委托和特定数据类型的列委托,能轻松为视图创建临时的“自定义”委托。列委托易于创建,可减少代码重复,因为每种要处理的数据类型只需一个列委托。通用委托方法适用于每列数据为单一数据类型的数据集,如数据库表。
创建树模型比较困难,因为要考虑父子关系,子节点可能也是父节点,这种递归关系可达到任意深度。这不像树和列模型那样只需考虑行和列。虽然这里展示的表格树模型是个具体例子,但提供树功能的一些方法,如 index() 、 parent() 和 nodeFromIndex() ,可以直接使用或稍作修改后使用,其他方法如 addRecord() 也具有可适应性。
超级会员免费看
订阅专栏 解锁全文
11万+

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



