【问题标题】:self.exit and self.quit do not exit PyQt applicationself.exit 和 self.quit 不退出 PyQt 应用程序
【发布时间】:2011-10-11 23:20:37
【问题描述】:

我正在尝试编写一个呈现 HTML、等待和完成的 PyQt 应用程序。我的渲染大部分都下来了(但为了简单起见,这里去掉了)。这里的代码运行并挂起,似乎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_())

【问题讨论】:

    标签: python pyqt pyqt4


    【解决方案1】:

    我不太明白您要做什么,但是,也就是说,您在 QApplication 的构造函数中调用了 exit(或 quit)。 exit(或quit)告诉QApplication离开它的事件循环,但是在构造函数中,事件循环还没有启动(它曾经被exec_调用过)。

    【讨论】:

    • 所以我需要定义自己的exec_?我找不到太多关于它默认功能的文档。
    • 嗯,回答你应该解释你想要做什么。
    • “我正在尝试编写一个呈现 HTML、等待和完成的 PyQt 应用程序。”它打开一个 QWebView,将其映射到一个 QPixmap,然后保存。
    • 我认为你的“渲染”方法应该在工作完成时发出你自己的信号。此信号应连接到应用程序的quitslot。
    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多