[PyKDE] QObject.findChildren doesn't work as expected with QRegExp
Kerri Reno
kreno at yumaed.org
Fri Mar 2 23:29:50 GMT 2007
Phil,
I tried using raw strings, and got the same output. Attached is a full
example.
Kerri
Yuma Educational Computer Consortium
Compass Development Team
Kerri Reno
kreno at yumaed.org (928) 502-4240
Phil Thompson wrote:
> On Friday 02 March 2007 2:53 am, Kerri Reno wrote:
>
>> I have the following code:
>>
>> def testfindChildren(self):
>> hLayout = QtGui.QHBoxLayout()
>> hLayout.setObjectName('hLayout_0')
>> self.searchLayout.addLayout(hLayout)
>>
>> print self.findChild(QtGui.QHBoxLayout,'hLayout_0')
>> children = self.findChildren(QtGui.QHBoxLayout,QtCore.QRegExp('\w*'))
>> for c in children:
>> print c.objectName()
>> print self.findChildren(QtGui.QHBoxLayout,QtCore.QRegExp('hLayout_\d'))
>>
>>
>> that gives me the following output:
>>
>> <PyQt4.QtGui.QHBoxLayout object at 0x019F0B70>
>> hLayout_0
>>
>> []
>>
>> The first line is returned from the findChild, the second (hLayout_0)
>> and third (blank line) are returned from print c.objectName().
>>
>> The one I need, findChildren with a QRegex does not return hLayout_0 in
>> the list. Am I doing something wrong here? Is this a bug? I can't see
>> anything in the docs that explains what's happening.
>>
>
> The escaping is certainly wrong - try using raw strings.
>
> Otherwise post a complete example that demonstrates the problem.
>
> Phil
>
> _______________________________________________
> PyKDE mailing list PyKDE at mats.imk.fraunhofer.de
> http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
>
>
-------------- next part --------------
import sys
from PyQt4 import QtGui, QtCore
class testFindChildren(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setWindowModality(QtCore.Qt.WindowModal)
self.searchLayout = QtGui.QVBoxLayout(self)
hLayout = QtGui.QHBoxLayout()
hLayout.setObjectName('hLayout_0')
self.searchLayout.addLayout(hLayout)
print self.findChild(QtGui.QHBoxLayout,r'hLayout_0')
children = self.findChildren(QtGui.QHBoxLayout,QtCore.QRegExp(r'\w*'))
for c in children:
print c.objectName()
print self.findChildren(QtGui.QHBoxLayout,QtCore.QRegExp(r'hLayout_\d'))
def main(args):
app = QtGui.QApplication(args)
mainWindow = testFindChildren()
mainWindow.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main(sys.argv)
More information about the PyQt
mailing list