Jan-19-2021, 10:01 PM
You did not set a layout to the tab widgets
from PyQt5.QtWidgets import (QMainWindow, QApplication, QTabWidget, QWidget, QVBoxLayout) import sys import os from PyQt5.QtCore import QUrl from PyQt5.QtWebEngineWidgets import QWebEngineView import requests PDFJS = f"file://{os.path.abspath('./Documents/programmation/java/web/viewer.html')}" class PagePdf(QWebEngineView): def __init__(self): super(PagePdf, self).__init__() def chargePdf (self, page): url="http://www.tabularium.be/bailly/"+page+'.pdf' with open("/tmp/"+page+".pdf", 'wb') as f: f.write(requests.get(url).content) PDF = "file:///tmp/"+page+".pdf" self.load(QUrl.fromUserInput(f'{PDFJS}?file={PDF}')) print("loading PDF:", PDF) self.setZoomFactor(0.75) class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle("My Awesome App") self.tabs = QTabWidget(self) self.tabs.setDocumentMode(True) self.tabs.setTabPosition(QTabWidget.North) self.tabs.setMovable(True) for n, page in enumerate(['0001','0120','1360']): p=PagePdf() print(page) tab = QWidget() self.tabs.addTab(tab, f"Tab{n + 1}") layout = QVBoxLayout() layout.addWidget(p) p.chargePdf(page) tab.setLayout(layout) self.setCentralWidget(self.tabs) self.setGeometry(0, 0, 600, 400) if __name__ == '__main__': import sys app = QApplication(sys.argv) win = MainWindow() win.setWindowTitle("QStackedLayout") win.show() sys.exit(app.exec_())