Pyqt Model/view框架 4.自定义编辑项

>[上篇](http://www.cnblogs.com/hangxin1940/archive/2012/12/07/2806450.html)介绍了如何实现item的可编辑,这篇将介绍如何自定义编辑项的显示 自定义显示可编辑项 --- 将以下方法添加至`MyDelegate`类中: def createEditor(self,parent,option,index): """ 创建编辑器 """ #创建一个QSPinBox sbox=QSpinBox(parent) sbox.setRange(0,100) #返回这个QSpinBox return sbox def setEditorData(self,editor,index): """ 设置编辑器数据 """ item_var=index.data(Qt.DisplayRole) item_str=item_var.toPyObject() item_int=int(item_str) #设置编辑器的数据为当前索引的值 editor.setValue(item_int) def setModelData(self,editor,model,index): """ 给model设置编辑后的数据 """ #获取编辑器的数据 data_int=editor.value() #把数据封装为Qt类型 data_var=QVariant(data_int) #设置Model的数据,当前索引与数据 model.setData(index,data_var) 运行后会发现,在编辑模式下的显示效果改变了。 *要注意的是Delegate(委托)介于View(视图)层与Model(控制)层之间。* >[下一篇](http://www.cnblogs.com/hangxin1940/archive/2012/12/07/2806454.html),我们将学到如何对数据进行排序与过滤

posted on 2012-04-23 01:27  黑暗伯爵  阅读(1729)  评论(0编辑  收藏  举报

导航