调用show()后QWidget不显示
在我的应用程序中,我有一个QWidget,调用了show()
之后却不显示,尽管isVisible
返回的是true
。
这个小部件是从主应用窗口的一个事件中创建的。但是当它单独启动时,也就是作为应用程序中唯一的小部件时,它能正常显示。
有没有人知道这是什么原因导致的?
我应用中的其他小部件都能正常显示,只有这个小部件让我头疼。实际上,它在之前的Qt4版本中运行得很好(我不记得是哪个版本)。
这个小部件的代码可以在这里找到。
更新:窗口似乎出现了,但马上又被销毁了。
1 个回答
4
相关的代码在 hidx/GUI/main.py
文件里:
@pyqtSignature("")
def on_actionScatterplot_Matrix_activated(self):
...
spm = scatmat.ScatMat(pars, self.currentdbname)
print "==>", spm.pw.isVisible()
spm.pw.hide()
spm.pw.showMaximized()
print spm.pw.size()
print "==>", spm.pw.isVisible()
@pyqtSignature("int")
def on_rowStart_valueChanged(self, p0):
...
在 on_actionScatterplot_Matrix_activated
这个函数里,你创建了一个 ScatMat
的实例,但没有保存对它的引用。所以这个窗口会短暂显示一下,然后在函数执行完毕后就会被自动清理掉。