It's trying to pass the toggled bool value as an extra argument. Probably
should be more like this:
def createEditor(self, parent , option, index):
container = QtGui.QWidget(parent)
layout = QtGui.QHBoxLayout()
layout.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignCenter)
layout.setContentsMargins(0, 0, 0, 0)
container.setLayout(layout)
checkBox = QtGui.QCheckBox(parent)
checkBox.toggled.connect(partial(self._checkBoxToggled, checkBox))
layout.addWidget(checkBox)
container.checkBox = checkBox
return container
def _checkBoxToggled(self, cbeckBox, *args, **kwargs):
self.commitData.emit(checkBox)
In addition to just pointing it at a custom slot, I have also changed your
configuration a bit. I don't think the editor widget should be built and
stored as members of the QItemDelegate. The view expects to use a single
instance as a controller for more than just one cell in your table. That
means you would be constantly replacing those references with newly created
one every time it wants to create an editor. The interface methods tell you
what editor widget you should be operating on, as a parameter. So that
means setEditorData() and setModelData() should be receiving your container
as the parameter and you would have to access your checkbox as:
container.checkBox
On Sat, Feb 22, 2014 at 1:47 AM, Ricardo Viana <[email protected]> wrote:
>
> Hi Justin
>
> i'm using standard Maya 2014 Pyside. guess is Qt4.8
> and i get another error now:
>
> # TypeError: commitData(QWidget*) only accepts 1 arguments, 3 given!
>
>
> this is my full method in case something else is messing it:
>
> def createEditor(self, parent , option, index):
>
> self.container = QtGui.QWidget(parent)
> layout = QtGui.QHBoxLayout()
>
> layout.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignCenter)
> layout.setContentsMargins(0, 0, 0, 0)
> self.container.setLayout(layout)
> self.checkBox = QtGui.QCheckBox(parent)
> self.checkBox.toggled.connect(partial(self.commitData.emit, self))
> layout.addWidget(self.checkBox)
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Python Programming for Autodesk Maya" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/python_inside_maya/a614dba8-300e-4e95-9aae-17f5f2d43cd2%40googlegroups.com
> .
>
> For more options, visit https://groups.google.com/groups/opt_out.
>
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA3wn-t0Ckt306v8mwTxsPbrJUi84LPHJFmBYhVjcxm9Fg%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.