[PyQt] headerDataChanged connection: new-style syntax problem

Phil Thompson phil at riverbankcomputing.com
Sat Nov 13 11:49:40 GMT 2010


On Sat, 13 Nov 2010 11:08:20 +0100, Vicent Mas <uvemas at gmail.com> wrote:
> On 2010-11-13 Phil Thompson <phil at riverbankcomputing.com> said:
> 
>> On Sat, 13 Nov 2010 09:57:26 +0100, Vicent Mas <uvemas at gmail.com>
wrote:
>> > Hi,
>> > 
>> > I'm upgrading some code and moving signal/slot connections from old
>> 
>> style
>> 
>> > to
>> > 
>> > new style but I'm having problem with this line:
>> >         self.connect(self.tmodel,
QtCore.SIGNAL("headerDataChanged(int,
>> >         int,
>> > 
>> > int)"), self.my_slot)
>> > 
>> > where self is an instance of QtGui.QTableView and self.tmodel is an
>> > instance
>> > of QtCore.QAbstractTableModel.
>> > 
>> > I've tried:
>> > 
>> > 1) self.tmodel.headerDataChanged.connect(self.my_slot)
>> > 2) self.tmodel.headerDataChanged[int, int, int].connect(self.my_slot)
>> > 
>> > and other variations with no luck. Could someone tell me how to
convert
>> 
>> it
>> 
>> > to
>> > the new-style syntax, please? I'm using Qt-4.6.3 and PyQt-4.8.
>> 
>> Define "no luck".
>> 
>> Phil
> 
> :-) I mean that some times my program aborts, other times I get no
errors
> but 
> the slot is never executed. I don't use any debugger, I just put a print

> 'something' in the first line of the slot but the string is never
printed.
> The 
> old-style version works just fine.

So you need to create a test that demonstrates the problem.

Phil


More information about the PyQt mailing list