編寫腳本將任意HTML呈現爲圖像,並使用PyQt。我很困惑,爲什麼我的QApplication.exit
電話不是讓QApplication.exec_
回報。對此有何想法?退出信號未被PyQt捕獲
class ScreenshotterApplication(QApplication):
def __init__(self, args, html):
QApplication.__init__(self, args)
self.html = html
self.browser = QWebView()
self.browser.resize(0, 0)
self.browser.loadFinished.connect(self.save)
self.browser.loadProgress.connect(self.progress)
def render(self):
self.browser.setHtml(self.html)
def progress(self, progress):
print '%d%%' % progress
def save(self, finished):
success = False
if finished:
print 'saving...'
# ... snip ...
success = pixmap.save('screenshot.png')
if success:
print 'saved as "screenshot.png"'
QApplication.exit(0 if success else 1)
def exec_(self, *args, **kwargs):
self.render()
super(QApplication, self).exec_(*args, **kwargs)
def take_screenshot(html):
app = ScreenshotterApplication(sys.argv, html)
return app.exec_()
if __name__ == "__main__":
print take_screenshot('<h1 style="width: 500px">Hello, World!</h1>')
哦,它的工作原理。我不確定我是否改變了一些東西,但不管我現在做什麼,它都不會正確退出。 –