gpt4 book ai didi

python - PyQt - Window().show() 失败但 var = Window(); var.show() 有效吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:21 24 4
gpt4 key购买 nike

当我发现一些我根本不理解的东西时,这是我弄乱的一些示例代码。

这段代码似乎可以工作

from PyQt4 import QtGui, QtCore
import sys

class Window(QtGui.QWidget):
def __init__(self):
pass

ap = QtGui.QApplication(sys.argv)
var = Window()
var.show()
sys.exit(ap.exec_())

但这会导致窗口快速连续出现而不是消失。 (第二条底线已更改)

from PyQt4 import QtGui, QtCore
import sys

class Window(QtGui.QWidget):
def __init__(self):
pass

ap = QtGui.QApplication(sys.argv)
Window().show()
sys.exit(ap.exec_())

我根本无法理解为什么。在我对python和Qt的所有理解中,我都无法理解为什么底部会失败。是垃圾收集还是什么?

谢谢!

最佳答案

在第二个版本中,您不保留对 Window 实例的引用,因此 Python 会在执行该行代码后销毁它。在第一个版本中,您通过代码块在 var 中保留一个引用。最重要的是,var 在您调用 ap.exec_() 时存在。

关于python - PyQt - Window().show() 失败但 var = Window(); var.show() 有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com