how can I view a pdf document from within a QWidget window
You can use QWebEngineView to view PDF files
#!/usr/bin/env python3
from PyQt6.QtCore import QUrl
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget
from PyQt6.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:
test_pdf = "/path/to/your_file.pdf" # change path
win.webView.setUrl(QUrl(f"file://{test_pdf}"))
sys.exit(app.exec())
More of my (older) examples for PDF here → GitHub - Axel-Erfurt/Qt5PDFViewer: PDF Viewer with Pyqt5 and pdfjs or QtWebengine · GitHub