> On Fri, Mar 6, 2009 at 6:22 PM, Mads Ipsen <m...@comxnet.dk> wrote:
>>> How does one connect to the signals of a QItemModel?
>>>
>>> I tried the following, but it didn't work:
>>>
>>> self.connect(
>>>                       self.model,
>>>                       QtCore.SIGNAL('itemChanged(QStandardItem 8)'),
>>>                       self.on_model_itemChanged
>>>               )
>>>
>>> and
>>>
>>> self.connect(
>>>                       self.model,
>>>                       QtCore.SIGNAL('itemChanged(QStandardItem &)'),
>>>                       self.on_model_itemChanged
>>>               )
>>>
>>> Neither worked.
>>>
>
>>
>>
>> I believe you should do:
>>
>> self.connect(self.model,
>>             QtCore.SIGNAL('itemChanged( QStandardItem *)'),
>>             self.foo)
>>
>> At least that works for me.
>>
>> Best, Mads
>>
>
> I tried that. That '8' was supposed to have been an '*'
>
>
> --
> Fedora 9 : sulphur is good for the skin
> ( www.pembo13.com )
> _______________________________________________
> PyQt mailing list    PyQt@riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>


This small example uses the connection setup from my previous post. It
emits the signal 10 times. The signal it connected to foo(), which prints
out the changed item. Just save it and run to see for your self.

import sys
from PyQt4 import QtCore, QtGui

def foo(item):
    print item

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)

    # Setup a model
    model = QtGui.QStandardItemModel()

    # Connect it
    model.connect(model, QtCore.SIGNAL('itemChanged( QStandardItem *)'), foo)

    # Add 10 dummy elements
    for i in range(10):
        item = QtGui.QStandardItem(str(i))
        model.appendRow([item])

    # Set them to be checked - this will trigger the 'itemChanged' signal
    for row in range(model.rowCount()):
        item = model.item(row, 0)
        item.setCheckState(QtCore.Qt.Checked)
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to