1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| import sys
from PyQt5 import (QtWidgets, QtGui, QtCore, QtPrintSupport)
#############################################################################
class TextEdit(QtWidgets.QTextEdit):
#========================================================================
def __init__(self, parent=None):
super().__init__(parent)
self.setPlainText("machin")
#========================================================================
def paintEvent(self, event):
painter = QtGui.QPainter()
painter.begin(self.viewport())
painter.save()
painter.setBrush(QtGui.QBrush(QtCore.Qt.green, QtCore.Qt.SolidPattern))
painter.drawRect(0,0,100, 100);
painter.setPen(QtCore.Qt.blue)
painter.setFont(QtGui.QFont("Arial", 30))
painter.drawText(50, 50, "====Qt====")
painter.restore()
painter.end()
super().paintEvent(event)
#############################################################################
class Fenetre(QtWidgets.QWidget):
#========================================================================
def __init__(self, parent=None):
super().__init__(parent)
self.tedit = TextEdit(self)
self.bouton = QtWidgets.QPushButton("imprimer", self)
self.bouton.clicked.connect(self.imprimer)
posit = QtWidgets.QGridLayout()
posit.addWidget(self.tedit, 0, 0)
posit.addWidget(self.bouton, 1, 0)
self.setLayout(posit)
#========================================================================
@QtCore.pyqtSlot()
def imprimer(self):
"""
"""
printer = QtPrintSupport.QPrinter()
preview = QtPrintSupport.QPrintPreviewDialog(printer)
preview.paintRequested.connect(self.tedit_printPreview)
preview.exec_()
#========================================================================
@QtCore.pyqtSlot("QPrinter")
def tedit_printPreview(self, printer):
self.tedit.print_(printer)
#############################################################################
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
fen = Fenetre()
fen.setAttribute(QtCore.Qt.WA_DeleteOnClose)
fen.show()
sys.exit(app.exec_()) |
Partager