深入探索PyQt的模型/视图编程与数据库操作
1. 创建自定义委托
当我们希望对数据项的展示和编辑进行完全控制时,就需要创建自定义委托。委托可以单纯用于控制外观(例如用于只读视图),也可以通过提供自定义编辑器来控制编辑,或者两者兼顾。
以 chap14/ships - delegate.pyw 应用为例,它与 ships - model.pyw 几乎相同,只是窗口标题不同,会调整所有列的大小,并且使用了自定义委托 ShipDelegate (该类位于 chap14/ships.py 中,需要 PyQt 4.1 或更高版本)。
委托和模型子类一样,遵循固定的模式。对于只读模型的委托,我们只需重新实现 paint() 方法;对于可编辑模型,必须重新实现 createEditor() 、 setEditorData() 和 setModelData() 方法。如果使用 QLineEdits 或 QTextEdits 进行编辑,通常还需要重新实现 commitAndCloseEditor() 方法,有时也需要重新实现 sizeHint() 方法。
以下是创建第一个表格的代码示例:
class MainForm(QDialog):
超级会员免费看
订阅专栏 解锁全文
18

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



