PyQt QWidget window 显示后立即关闭?
PyQt QWidget window closes immediately upon showing?
我意识到这个问题之前已经问过好几次了,尽管其中 none 似乎适用于我的情况。我已经安装了 PyQt,我只是想打开一个 window 这样的:
import sys
from PyQt4 import QtGui as qt
segmentation = qt.QApplication(sys.argv)
main = qt.QWidget()
main.show()
我在这里看到的所有其他问题通常是由 window 超出范围的错误引起的,因为 window 的 show
方法被调用来自函数或类似的东西。
我的代码根本没有使用函数,所以这不是问题所在。这应该可以正常工作,不是吗?我正在学习本教程:
https://www.youtube.com/watch?v=JBME1ZyHiP8
在时间 8:58,讲师几乎完全掌握了我所写的内容,他们的 window 出现并保持良好状态。我的显示几分之一秒然后关闭。
视频中代码块的屏幕截图,用于与此处提供的代码块进行比较:
没有看到您的所有代码,我假设您遗漏了 sys.exit()
位。
对于您的特定代码,sys.exit(segmentation.exec_())
将是您所需要的。
segmentation = qt.QApplication(sys.argv)
main = qt.QWidget()
main.show()
sys.exit(segmentation.exec_())
关于这里发生的事情的一些细节。
segmentation = qt.QApplication(sys.argv)
创建实际的应用程序。
main = qt.QWidget()
和 main.show()
创建 Widget,然后显示。
当执行 python 脚本时,这完全按照您的指示执行:
- 创建应用程序
- 创建小部件
- 显示小部件
- 完成。脚本结束。
sys.exit()
所做的是干净地关闭 python 脚本。 segmentation.exec_()
启动QT的事件驱动后台处理。一旦 segementation.exec_()
完成(用户关闭应用程序,您的软件关闭应用程序,或者遇到错误)它会 return 一个值,然后传递给 sys.exit()
函数依次终止 python 进程。
我意识到这个问题之前已经问过好几次了,尽管其中 none 似乎适用于我的情况。我已经安装了 PyQt,我只是想打开一个 window 这样的:
import sys
from PyQt4 import QtGui as qt
segmentation = qt.QApplication(sys.argv)
main = qt.QWidget()
main.show()
我在这里看到的所有其他问题通常是由 window 超出范围的错误引起的,因为 window 的 show
方法被调用来自函数或类似的东西。
我的代码根本没有使用函数,所以这不是问题所在。这应该可以正常工作,不是吗?我正在学习本教程:
https://www.youtube.com/watch?v=JBME1ZyHiP8
在时间 8:58,讲师几乎完全掌握了我所写的内容,他们的 window 出现并保持良好状态。我的显示几分之一秒然后关闭。
视频中代码块的屏幕截图,用于与此处提供的代码块进行比较:
没有看到您的所有代码,我假设您遗漏了 sys.exit()
位。
对于您的特定代码,sys.exit(segmentation.exec_())
将是您所需要的。
segmentation = qt.QApplication(sys.argv)
main = qt.QWidget()
main.show()
sys.exit(segmentation.exec_())
关于这里发生的事情的一些细节。
segmentation = qt.QApplication(sys.argv)
创建实际的应用程序。
main = qt.QWidget()
和 main.show()
创建 Widget,然后显示。
当执行 python 脚本时,这完全按照您的指示执行:
- 创建应用程序
- 创建小部件
- 显示小部件
- 完成。脚本结束。
sys.exit()
所做的是干净地关闭 python 脚本。 segmentation.exec_()
启动QT的事件驱动后台处理。一旦 segementation.exec_()
完成(用户关闭应用程序,您的软件关闭应用程序,或者遇到错误)它会 return 一个值,然后传递给 sys.exit()
函数依次终止 python 进程。