Dariusz
Dariusz

Reputation: 1054

PyQT - list QWidgets/Windows

I have a

class Main(QtGui.QMainWindow):

That is able to click>spawn a x number of windows that are:

class dataWindow(QtGui.QWidget)

Is there a way in PyQt to now find all spawned dataWindow's and get their objectName? each window has unique objectName. I tried going via :

a= self.findChild(QWidget, self.newDataWids[0]["window_name"]) - as I have all names stored in dict upon creation

but it only returns None. I think its because the dataWindow are not parented to Main window class I believe... so I either have to parent them - not sure how. Or somehow find them out in the "wild"...

Any ideas would be great.
Regards, Dariusz

Edit_1: A glitch in my code bugged out my current attempt. After relooking I managed to get it to work. I simply stored the window in temporary dictionary and then used that to retrieve access to window.

Upvotes: 2

Views: 1256

Answers (1)

Brendan Abel
Brendan Abel

Reputation: 37539

You parent objects by passing in the parent to their constructor. You'll have to check the documentation for each widget to get the correct argument position.

widget = QtGui.QWidget(self)
btn = QtGui.QPushButton('Button Text', self)

But really, you shouldn't have to do a search for children to get the child windows. Your main window should be keeping handles to them.

def __init__(...)
    ...
    self._windows = []

def createSubWindow(self):
    window = WindowClass(self)
    self._windows.append(window)

Upvotes: 2

Related Questions