Пример #1
0
        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()
Пример #2
0
 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()
Пример #3
0
 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)
Пример #4
0
 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()
Пример #5
0
 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