def __printps(self,text): printer = qt.QPrinter() if printer.setup(self): painter = qt.QPainter() if not(painter.begin(printer)): return 0 metrics = qt.QPaintDeviceMetrics(printer) dpiy = metrics.logicalDpiY() margin = int((2/2.54) * dpiy) #2cm margin body = qt.QRect(0.5*margin, margin, metrics.width()- 1 * margin, metrics.height() - 2 * margin) #text = self.mcatable.gettext() #html output -> print text richtext = qt.QSimpleRichText(text, qt.QFont(), qt.QString(""), #0, qt.QStyleSheet.defaultSheet(), qt.QMimeSourceFactory.defaultFactory(), body.height()) view = qt.QRect(body) richtext.setWidth(painter,view.width()) page = 1 while(1): richtext.draw(painter,body.left(),body.top(), view,qt.QColorGroup()) view.moveBy(0, body.height()) painter.translate(0, -body.height()) painter.drawText(view.right() - painter.fontMetrics().width(qt.QString.number(page)), view.bottom() - painter.fontMetrics().ascent() + 5,qt.QString.number(page)) if view.top() >= richtext.height(): break printer.newPage() page += 1 #painter.flush() painter.end()
def printFile(): painter = qt.QPainter(printer) scene.render( painter, qt.QRectF(0, 0, printer.width(), printer.height()), qt.QRectF(page.rect().x(), page.rect().y(), page.rect().width(), page.rect().height()), qt.Qt.KeepAspectRatio) painter.end()
def paintEvent(self, pEvent): if QTVERSION < '4.0.0': qt.QPushButton.paintEvent(self, pEvent) else: p = qt.QPainter(self) wr = self.rect() pr = qt.QRect(wr.left() + 1, wr.top() + 1, wr.width() - 2, wr.height() - 2) if self.selected: p.fillRect(pr, self.brush) p.setPen(qt.Qt.black) p.drawRoundRect(pr) p.end() qt.QPushButton.paintEvent(self, pEvent)
def __print(self, text): printer = qt.QPrinter() if printer.setup(self): painter = qt.QPainter() if not (painter.begin(printer)): return 0 try: metrics = qt.QPaintDeviceMetrics(printer) dpiy = metrics.logicalDpiY() margin = int((2 / 2.54) * dpiy) # 2cm margin body = qt.QRect(0.5 * margin, margin, metrics.width() - margin, metrics.height() - 2 * margin) richtext = qt.QSimpleRichText( text, qt.QFont(), qt.QString(""), #0, qt.QStyleSheet.defaultSheet(), qt.QMimeSourceFactory.defaultFactory(), body.height()) view = qt.QRect(body) richtext.setWidth(painter, view.width()) page = 1 while (1): richtext.draw(painter, body.left(), body.top(), view, qt.QColorGroup()) view.moveBy(0, body.height()) painter.translate(0, -body.height()) painter.drawText( view.right() - painter.fontMetrics().width(qt.QString.number(page)), view.bottom() - painter.fontMetrics().ascent() + 5, qt.QString.number(page)) if view.top() >= richtext.height(): break printer.newPage() page += 1 painter.end() except: painter.end() msg = qt.QMessageBox(self) msg.setIcon(qt.QMessageBox.Critical) msg.setText("%s" % sys.exc_info()[1]) msg.exec_loop()
def __print(self): printer = self.printer painter = qt.QPainter(printer) try: self.scene.render( painter, qt.QRectF(0, 0, printer.width(), printer.height()), qt.QRectF(self.page.rect().x(), self.page.rect().y(), self.page.rect().width(), self.page.rect().height()), qt.Qt.KeepAspectRatio) painter.end() self.__clearAll() self.hide() self.accept() except: painter.end() qt.QMessageBox.critical( self, "ERROR", 'Printing problem:\n %s' % sys.exc_info()[1]) return