返回

python-QApplication不是在main()线程api Pyqt中创建的

发布时间:2022-05-13 18:32:24 262
# node.js

在 api 中的 Pyqt 中执行 Html 到 pdf 应用程序时,出现以下错误:

QApplication 不是在 main() 线程中创建的。

它只允许我生成一次文件,然后应用程序就死了

代码:

class PdfPage(QtWebEngineWidgets.QWebEnginePage):
        def __init__(self):
            super().__init__()
            self._htmls = []
            self.html = ""        
            self.orientacion = "" 
            self.arch = ""   
            self._layout = QPageLayout()
            self._layout.setPageSize(QPageSize(QPageSize.PageSizeId.A4))
            self._layout.setOrientation(QPageLayout.Orientation.Landscape)
            self.setZoomFactor(1)
            self.loadFinished.connect(self._handleLoadFinished)

        def convert(self, htmls):
            self._htmls = iter(htmls)
            self._fetchNext()

        def _fetchNext(self):
            try:
                self.html= next(self._htmls)
            except StopIteration:
                return False
            else:
                self.setHtml(self.html.html)
                if(self.html.orientacion=="L"):
                    self._layout.setOrientation(QPageLayout.Orientation.Landscape)
                else:
                    self._layout.setOrientation(QPageLayout.Orientation.Portrait)
                self.arch = self.html.arch
            return True
        def callback(self,s: bytearray):
            pdfs.append(s)
            if not self._fetchNext():
                QtWidgets.QApplication.quit()
        def _handleLoadFinished(self, ok):
            if ok:          
                self.printToPdf(self.callback,self._layout)   
    if __name__ == "Genero_pdf":
        htmls = Genero_html(["cesionario"])
        pdfs = []
        if htmls:
            app = QtWidgets.QApplication([])
            page = PdfPage()
            page.convert(htmls)
            app.exec()
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像