2016-05-18 26 views
2

我有一个PyQt的 - 名单QWidgets/Windows的

class Main(QtGui.QMainWindow): 

即能点击>这是Windows的产卵斧数量:

class dataWindow(QtGui.QWidget) 

是否有PyQt的办法现在发现所有衍生dataWindow的并得到他们的objectName?每个窗口都有唯一的objectName。 我试图通过准备:

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

但它只返回无。我认为它是因为dataWindow不是父窗口类的父对象,所以我要么必须父母 - 不知道如何。或者以某种方式在“狂野”中找到它们......

任何想法都会很棒。
此致,Dariusz

Edit_1:我的代码中的一个小故障纠正了我目前的尝试。重新看后,我设法让它工作。我只是将窗口存储在临时字典中,然后用它来检索对窗口的访问。

回答

2

父对象通过父对象传递给它们的构造函数。您必须检查每个小部件的文档以获取正确的参数位置。

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

但是真的,你不应该做孩子的搜索来获取子窗口。你的主窗口应该保持对他们的句柄。

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

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

嗨案例排序,但可悲的是,而不是你有什么建议我有第二课... ...初学者的错误。 – Dariusz