【问题标题】:PyQT - list QWidgets/WindowsPyQT - 列出 QWidgets/Windows
【发布时间】:2016-09-15 13:54:22
【问题描述】:

我有一个

class Main(QtGui.QMainWindow):

能够点击>生成 x 个窗口,这些窗口是:

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 不是我相信的主窗口类的父级......所以我要么必须将它们作为父级 - 不知道如何。或者以某种方式在“荒野”中找到它们......

任何想法都会很棒。
问候,大流士

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

【问题讨论】:

    标签: python pyqt pyqt4 qwidget qmainwindow


    【解决方案1】:

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

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

    但实际上,您不必搜索子项来获取子窗口。您的主窗口应该保留它们的句柄。

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

    【讨论】:

    • 嘿,案例已排序,但遗憾的是,我没有按照您的建议进行第二节课...初学者的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多