PyQt 模型/视图编程与数据库操作
1. 创建自定义委托
在数据项的展示和编辑中,若想实现完全控制,就需要创建自定义委托。委托可单纯用于控制外观(如只读视图),也可通过提供自定义编辑器来控制编辑,还能两者兼顾。
下面是一个自定义委托的实际示例,与之前的截图相似,但描述文本会被正确格式化,而非以原始 HTML 形式显示。当编辑所有者或国家字段时,会出现包含当前所有者和国家的组合框;编辑 TEU 时,会出现一个微调框。这些对外观和编辑的控制都是通过委托实现的。
这里使用 chap14/ships-delegate.pyw 应用程序,它与 ships-model.pyw 几乎相同,仅在窗口标题、列调整方式以及使用自定义委托上有所不同。委托类 ShipDelegate 位于 chap14/ships.py 中,该类需要 PyQt 4.1 或更高版本。
委托和模型子类一样,遵循固定模式。对于只读模型的委托,只需重新实现 paint() 方法;对于可编辑模型,则需重新实现 createEditor() 、 setEditorData() 和 setModelData() 方法。若使用 QLineEdits 或 QTextEdits 进行编辑,通常还需重新实现 commitAndCloseEditor() 方法,有时也需要重新实现 s
超级会员免费看
订阅专栏 解锁全文
35

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



