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

3 投票
1 回答
4135 浏览
提问于 2025-04-17 04:05

我正在尝试写一个使用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)。这两个命令的意思是让 QApplication 退出它的事件循环。但是在构造函数里,事件循环还没有开始(事件循环是在调用 exec_ 后才开始的)。

撰写回答