May-05-2023, 05:32 PM
I have run the above python script. But I get only blank widget. What additional python packages are to be installed? Thankyou.
[PyQt] [solved] How to display a pdf-file in a PyQt6 widget
|
May-05-2023, 05:32 PM
I have run the above python script. But I get only blank widget. What additional python packages are to be installed? Thankyou.
May-05-2023, 05:49 PM
You must provide a path to a PDF file.
Example: python3 script.py path/to/your.pdf
(May-05-2023, 05:49 PM)Axel_Erfurt Wrote: You must provide a path to a PDF file. I provided the full path. May be I did not understand you. Below is my code. from qtpy.QtCore import QUrl from qtpy.QtWidgets import QApplication, QMainWindow from qtpy.QtWebEngineWidgets import QWebEngineView from os import path class MainWindow(QMainWindow): def __init__(self): super(QMainWindow, self).__init__() self.setWindowTitle("PDF Viewer") self.setGeometry(0, 28, 1000, 750) self.webView = QWebEngineView() self.webView.settings().setAttribute(self.webView.settings().WebAttribute.PluginsEnabled, True) self.webView.settings().setAttribute(self.webView.settings().WebAttribute.PdfViewerEnabled, True) self.setCentralWidget(self.webView) def url_changed(self): self.setWindowTitle(self.webView.title()) def go_back(self): self.webView.back() if __name__ == '__main__': import sys app = QApplication(sys.argv) win = MainWindow() win.show() if len(sys.argv) > 1: win.webView.setUrl(QUrl(f"file://{sys.argv[1]}")) else: wd = path.dirname(sys.argv[0]) # wd = path.dirname(path.abspath(sys.argv[0])) print(f"wd: {wd}") # wd: E:\MyProjects\PDFviewer_2 test_pdf = "test.pdf" win.webView.setUrl(QUrl(f"file://{wd}/{test_pdf}")) sys.exit(app.exec())Please advice. Larz60+ write May-06-2023, 09:23 AM:
Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button. Fixed for you this time. Please use BBCode tags on future posts.
May-06-2023, 09:27 AM
try this
from qtpy.QtCore import QUrl from qtpy.QtWidgets import QApplication, QMainWindow from qtpy.QtWebEngineWidgets import QWebEngineView class MainWindow(QMainWindow): def __init__(self): super(QMainWindow, self).__init__() self.setWindowTitle("PDF Viewer") self.setGeometry(0, 28, 1000, 750) self.webView = QWebEngineView() self.webView.settings().setAttribute(self.webView.settings().WebAttribute.PluginsEnabled, True) self.webView.settings().setAttribute(self.webView.settings().WebAttribute.PdfViewerEnabled, True) self.setCentralWidget(self.webView) def url_changed(self): self.setWindowTitle(self.webView.title()) def go_back(self): self.webView.back() if __name__ == '__main__': import sys app = QApplication(sys.argv) win = MainWindow() win.show() if len(sys.argv) > 1: url = sys.argv[1] win.webView.setUrl(QUrl(f"file://{url}")) sys.exit(app.exec()) |
|