class DataForm(QtGui.QGroupBox):
def __init__(self, parent, task=None):
QtGui.QWidget.__init__(self, parent)
self.labelHello = QtGui.QLabel(self)
self.labelHello.setText("This is My Widget")
children = self.children()
I 'm trying to get the children in the init of the class.
It' a GroupBox with two text boxes in it.
But it gets no children, returns empty.
I can't find any documentation for a .getChildren(), but there is a .findChildren(). Have you tried that?
Example of usage:
http://nullege.com/codes/show/src@g@[email protected]
# assume "expanded = True"
for widget in self.findChildren(QtGui.QWidget):
widget.setHidden(not expanded)
Sorry, I meant: children = self.children()
Yes I've tried what you suggest, it also fails.
Maybe I should get the children not in init but in some other function (I wonder which one?) because they, may, have not yet been created?
This class 'promotes' a QGroupBox to 'DataForm', maybe my constructor is incorrect?
DataForm(QtGui.QGroupBox):
def __init__, parent):
QtGui.QGroupBox.__init__(self, parent)
I tried in showEvent, now it works BUT brings ALL the widgets of the form!!! and not only the ones in my widget (my GroupBox):
class DataForm(QtGui.QGroupBox):
signal_hided = QtCore.pyqtSignal()
signal_shown = QtCore.pyqtSignal()
def __init__(self, parent):
QtGui.QGroupBox.__init__(self, parent)
def showEvent(self, event):
super(DataForm, self).showEvent(event)
self.signal_shown.emit()
children = self.children()
for widget in children:
print('DataForm:showEvent=', widget.objectName())
On the mousePressEvent I get the correct children!!
def mousePressEvent (self, event):
children = self.findChildren(QtGui.QTextEdit)
for widget in children:
print('DataForm:getChildren=', widget.objectName())
So maybe it's just in which event I use this code?
In which event do you think I should put it?
Init is rejected, paint event is rejected, showEvent rejected too...