[QPrintPreviewDialog + PySide6.7.2 + Python 3.12] Błąd ale gdzie go szukać?
Unsolved
Polish
-
Witam!
Napisałem prosty program do przetestowania QPrintPreviewDialog drukujący własny kod.
Mieści się na dwóch stronach A4.import sys from PySide6.QtWidgets import QTextEdit, QVBoxLayout, QWidget, QApplication, QPushButton, QDialog from PySide6.QtPrintSupport import QPrinter, QPrintDialog, QPrintPreviewDialog class MainWindow(QWidget): def __init__(self, parent=None): super().__init__(parent) self.printDialog = None self.printer = QPrinter(QPrinter.HighResolution) self.tekst = None self.buttonPreview = QPushButton("Przeglądaj") self.buttonPreview.setEnabled(False) self.buttonPreview.clicked.connect(self.printPreviewDialog) self.buttonPrint = QPushButton("Drukuj") self.buttonPrint.setEnabled(False) self.buttonPrint.clicked.connect(self.dialogPrint) self.buttonOpen = QPushButton("Otwórz plik") self.buttonOpen.clicked.connect(self.openFile) self.editor = QTextEdit() self.editor.textChanged.connect(self.printEnabled) self.widget = QWidget() self.layout = QVBoxLayout(self) self.layout.addWidget(self.editor) self.layout.addWidget(self.buttonPreview) self.layout.addWidget(self.buttonPrint) self.layout.addWidget(self.buttonOpen) def dialogPrint(self): self.printDialog = QPrintDialog(self.printer) if self.printDialog.exec() == QDialog.accepted: self.editor.document().print_(self.printDialog.printer()) def openFile(self): f = open("Drukowanie.py", 'r') self.tekst = f.read() self.editor.setText(self.tekst) def printPreviewDialog(self): printer = QPrinter(QPrinter.PrinterMode.HighResolution) previewDialog = QPrintPreviewDialog(printer, self) previewDialog.paintRequested.connect(self.printPreview) previewDialog.exec() def printPreview(self, printer): self.editor.print_(printer) def printEnabled(self): if not self.editor.document().isEmpty(): self.buttonPrint.setEnabled(True) self.buttonPreview.setEnabled(True) else: self.buttonPrint.setEnabled(False) self.buttonPreview.setEnabled(False) app = QApplication(sys.argv) window = MainWindow() window.setGeometry(400, 100, 500, 500) window.show() try: sys.exit(app.exec()) except SystemExit: print('Closing Window...')
Po aktualizacji do najnowszego Pythona 3.12 podgląd wydruku wygląda tak:
Po powrocie do Pythonia 3.11 podgląd wydruku wygląda tak:
Dodam, że wydruk jest w obu przypadkach prawidłowy. Czy ktoś miał podobny problem i czy można go w jakiś sposób rozwiązać?