QDataWidgetMapper 和多个委托 [英] QDataWidgetMapper and multiple delegates

查看:34
本文介绍了QDataWidgetMapper 和多个委托的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

mapper = QtGui.QDataWidgetMapper()
mapper.setModel(my_table_model)
mapper.addMapping(widgetA, 0) #mapping widget to a column
mapper.addMapping(widgetB, 1) #mapping widget to a column
mapper.setItemDelegate(MyDelegateA(widgetA)) #Hmm. Where is the 'column' parameter?
mapper.setItemDelegate(MyDelegateB(widgetB)) #now itemDelegate is rewritten, MyDelegateB will be used

那么...如何为单个 QDataWidgetMapper 设置多个委托?据我所知,没有 QDataWidgetMapper.setItemDelegateForColumn() 或者我是否必须创建一些委托工厂,它将使用适当的委托?

So... How do I set up mutiple delegates for a single QDataWidgetMapper? As far as I understand there is no QDataWidgetMapper.setItemDelegateForColumn() Or do I have to create some delegate factory, which will use appropriate delegates?

谢谢!

推荐答案

你必须使用一个单一的委托来处理 setEditorDatasetModelData 中不同小部件的行为方式代码> 委托的功能.举个例子(C++ 但很直接),请查看 这篇来自 Qt Quarterly 的文章.

You have to use one single delegate and handle the way behavior of the different widgets in the setEditorData and setModelData functions of the delegate. For an example (C++ but straight forward) check this article from Qt Quarterly.

这篇关于QDataWidgetMapper 和多个委托的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆