public void print() { QPrinter printer = new QPrinter(QPrinter.PrinterMode.HighResolution); QPrintDialog printDialog = new QPrintDialog(printer, this); if (printDialog.exec() == QDialog.DialogCode.Accepted.value()) { QPainter painter = new QPainter(printer); QRect rect = painter.viewport(); QSize size = image.size(); size.scale(rect.size(), Qt.AspectRatioMode.KeepAspectRatio); painter.setViewport(rect.x(), rect.y(), size.width(), size.height()); painter.setWindow(image.rect()); painter.drawImage(0, 0, image); painter.end(); } }