self.exit和self.quit无法退出PyQt应用程序

3
我正在尝试编写一个PyQt应用程序,用于呈现HTML、等待和完成。我已经基本掌握了呈现(但为简单起见在此剥离)。这里的代码运行并挂起,似乎self.exit调用(或self.quit)没有被执行。由于没有使用Qt的经验,我感觉我可能漏掉了一些明显的东西。能有人解释一下吗?
我还尝试将退出调用放在呈现函数的末尾。
from PyQt4.Qt import QApplication
from PyQt4.QtWebKit import QWebView
import sys

class ScreenshotterApplication(QApplication):

    def __init__(self, args, html):
        QApplication.__init__(self, args)

        self.browser = QWebView()
        self.render(html)
        self.exit()

    def render(self, html):
        print html

if __name__ == "__main__":
    app = ScreenshotterApplication(sys.argv, '<h1>Hello, World!</h1>')
    sys.exit(app.exec_())
1个回答

3

我不太理解你想要做什么,但是说句实话,在QApplication的构造函数中调用了exit(或quit)。exit(或quit)告诉QApplication离开其事件循环,但在构造函数中,事件循环尚未启动(只有在调用exec_后才会启动)。


那我需要定义自己的 exec_ 吗?我找不到太多关于它默认行为的文档。 - Brian Hicks
好的,要回答这个问题,你需要解释一下你想做什么。 - Jeannot
我正在尝试编写一个PyQt应用程序,它可以呈现HTML,等待并完成操作。它打开一个QWebView,将其映射到QPixmap,并保存该图像。 - Brian Hicks
1
我认为你的“渲染”方法应该在工作完成时发出自己的信号。这个信号应该连接到你的应用程序的“退出”槽。 - Jeannot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接