QDataWidgetMapper 和多个委托 [英] QDataWidgetMapper and multiple delegates
问题描述
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?
谢谢!
推荐答案
你必须使用一个单一的委托来处理 setEditorData
和 setModelData
中不同小部件的行为方式代码> 委托的功能.举个例子(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屋!