Hello List I've been trying to adjust the layout of a QFileDialog after customising it using addWidgets(). I've tried to access the block of widgets at the bottom of the dialog using layout iterators, but something seems to be broken. The QLayoutItems produced by the iterators are all 'sterile'. That is, their own iterators don't produce anything and their layout(), widget(), and spacerItem() methods all return None. It's possible to 'cheat' a bit by using QObject methods to access child layouts - but this still ends up with the useless 'sterile' QLayoutItems at some point.
Here's some sample output to show what I mean: >>> from qt import * >>> a = QApplication([]) >>> d = QFileDialog() >>> d.layout().activate() >>> ## this is cheating... ... p = d.layout().children()[1] >>> (isinstance(p,QLayoutItem),isinstance(p,QObject)) (True, True) >>> print (p.layout(),p.widget(),p.spacerItem()) (<qt.QVBoxLayout object at 0xb7d467ac>, None, None) >>> ## not cheating... ... c = p.iterator().current() >>> (isinstance(c,QLayoutItem),isinstance(c,QObject)) (True, False) >>> print (c.layout(),c.widget(),c.spacerItem()) (None, None, None) >>> print (c.isEmpty(), c.iterator().current()) (False, None) >>> ## cheating again... ... c = p.children()[0] >>> (isinstance(c,QLayoutItem),isinstance(c,QObject)) (True, True) >>> print (c.layout(),c.widget(),c.spacerItem()) (<qt.QHBoxLayout object at 0xb7d467dc>, None, None) >>> print (c.isEmpty(), c.iterator().current()) (False, <qt.QLayoutItem object at 0xb7d4674c>) >>> ## not cheating... ... i = c.iterator().current() >>> type(i).mro() [<class 'qt.QLayoutItem'>, <type 'sip.wrapper'>, <type 'object'>] >>> print (i.layout(),i.widget(),i.spacerItem()) (None, None, None) >>> print i.geometry().rect() (11, 14, 47, 16) That last QLayoutItem corresponds with the 'Look in' label at the top of the dialog. Shouldn't it be a QWidgetItem? It would have to be for i.widget() to return a QLabel - wouldn't it? BTW, I am using python 2.4.1 pyqt 3.14.1 and sip 4.2.1 Thanks for any thoughts you might have on this. -- Baz Walter _______________________________________________ PyKDE mailing list PyKDE@mats.imk.fraunhofer.de http://mats.imk.fraunhofer.de/mailman/listinfo/pykde