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()
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报