使第二个PyQt4 QMainWindow从主应用程序“可分离”

2024-10-01 13:26:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有QMainWindow的PyQt4应用程序。在该程序中,我启动另一个QMainWindow,用于绘制matplotlib图。我的方法基于将matplotlib与PyQt集成的Eli Benderskysway。你知道吗

class QtMatplotlibWindow(QtGui.QMainWindow):
"""Plot window to display data, is created by main application"""

def __init__(self, parent=None):
    QtGui.QMainWindow.__init__(self, parent)

如果我用parent=None实例化QtMatplotlibWindow,结果窗口将完全“独立”,这意味着它在任务栏中有自己的图标,并且与主应用程序完全“分离”。因此,例如,我可以将另一个应用程序(比如Internet Explorer)放到前面,然后只将Matplotlib窗口放到前面,实际的应用程序留在后台。但是,使用parent=None会导致matplotlib窗口从堆栈中抛出并在某个看似随机的时间点关闭,而我却不愿意这样做。你知道吗

另一方面,如果我将主应用程序的实例作为父应用程序传递,那么这两个窗口将“绑定在一起”,这意味着我无法独立地查看它们。你知道吗

我怎样才能做到“两全其美”?我想将主应用程序的实例作为父应用程序传递,这样生成的绘图只有在关闭主应用程序时才会关闭,但我也希望绘图窗口在显示和移动时完全独立。我希望QMainWindow的某些属性允许我这样做。我希望我能把我的问题说清楚,我觉得我缺少合适的术语。你知道吗


Tags: 实例方法self程序none应用程序绘图matplotlib