def printPreviewBrowser(self, browser=None): """ Public slot called to show a print preview of the displayed file. @param browser reference to the browser to be printed (HelpBrowserWV) """ from PyQt5.QtPrintSupport import QPrintPreviewDialog if browser is None: browser = self.currentBrowser() printer = QPrinter(mode=QPrinter.HighResolution) if Preferences.getPrinter("ColorMode"): printer.setColorMode(QPrinter.Color) else: printer.setColorMode(QPrinter.GrayScale) if Preferences.getPrinter("FirstPageFirst"): printer.setPageOrder(QPrinter.FirstPageFirst) else: printer.setPageOrder(QPrinter.LastPageFirst) printer.setPageMargins( Preferences.getPrinter("LeftMargin") * 10, Preferences.getPrinter("TopMargin") * 10, Preferences.getPrinter("RightMargin") * 10, Preferences.getPrinter("BottomMargin") * 10, QPrinter.Millimeter ) printerName = Preferences.getPrinter("PrinterName") if printerName: printer.setPrinterName(printerName) self.__printPreviewBrowser = browser preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(self.__printPreview) preview.exec_()
def __printPreviewImage(self): """ Private slot to handle the Print Preview menu action. """ from PyQt5.QtPrintSupport import QPrintPreviewDialog if self.mainWidget is None: E5MessageBox.critical( self, self.tr("Print Preview"), self.tr("""There is no UI file loaded.""")) return settings = Preferences.Prefs.settings printer = QPrinter(QPrinter.HighResolution) printer.setFullPage(True) printerName = Preferences.getPrinter("UIPreviewer/printername") if printerName: printer.setPrinterName(printerName) printer.setPageSize( QPrinter.PageSize(int(settings.value("UIPreviewer/pagesize")))) printer.setPageOrder( QPrinter.PageOrder(int(settings.value("UIPreviewer/pageorder")))) printer.setOrientation(QPrinter.Orientation( int(settings.value("UIPreviewer/orientation")))) printer.setColorMode( QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode")))) preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(self.__print) preview.exec_()
def print_(self): printer = QPrinter(QPrinter.ScreenResolution) dlg = QPrintPreviewDialog(printer) view = PrintView() view.setModel(self.table.model()) dlg.paintRequested.connect(view.print_) dlg.exec_()
def __printPreviewDiagram(self): """ Private slot called to show a print preview of the diagram. """ from PyQt5.QtPrintSupport import QPrintPreviewDialog printer = QPrinter(mode=QPrinter.ScreenResolution) printer.setFullPage(True) if Preferences.getPrinter("ColorMode"): printer.setColorMode(QPrinter.Color) else: printer.setColorMode(QPrinter.GrayScale) if Preferences.getPrinter("FirstPageFirst"): printer.setPageOrder(QPrinter.FirstPageFirst) else: printer.setPageOrder(QPrinter.LastPageFirst) printer.setPageMargins( Preferences.getPrinter("LeftMargin") * 10, Preferences.getPrinter("TopMargin") * 10, Preferences.getPrinter("RightMargin") * 10, Preferences.getPrinter("BottomMargin") * 10, QPrinter.Millimeter ) printer.setPrinterName(Preferences.getPrinter("PrinterName")) preview = QPrintPreviewDialog(printer, self) preview.paintRequested[QPrinter].connect(self.__print) preview.exec_()
def printPreview(self): document = self.getDocumentForPrint() if document == None: return printer = self.standardPrinter() preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(document.print) preview.exec()
def printDocument(self): document = self.text.document() printer = QPrinter() dlg = QPrintPreviewDialog(printer, self) if dlg.exec_() != QtWidgets.QDialog.Accepted: return document.print_(printer) self.statusBar().showMessage("Печать успешна", 2000)
def printPreview(self): title, htmltext, preview = self.currentTab.getDocumentForExport(includeStyleSheet=True, webenv=False) document = self.getDocumentForPrint(title, htmltext, preview) if document is None: return printer = self.standardPrinter(title) preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(document.print) preview.exec()
def __init__(self, parent=None, url = ""): """ Constructor of HtmlView :param parent: parent of the view :param url: url to load, if set, a loadFInished signal is emitted """ super().__init__(parent) self.html = "" self.setUrl(QUrl(url)) """Open QPrintPreviewDialog dialog window""" self.preview = QPrintPreviewDialog() # just for the moment / buf in Qt leads to incorrect printing of tables fomr QWebKit self.preview.printer().setOutputFormat(QPrinter.PdfFormat) self.preview.printer().setPaperSize(QPrinter.A4) self.textedit = QTextEdit() self.preview.paintRequested.connect(self.printPreview) if url != "": self.loadFinished.connect(self.execpreview)
def print_file(fileName, printFunction): """This method print a file This method print a file, fileName is the default fileName, and printFunction is a funcion that takes a QPrinter object and print the file, the print method More info on:http://doc.qt.nokia.com/latest/printing.html""" printer = QPrinter(QPrinter.HighResolution) printer.setPageSize(QPrinter.A4) printer.setOutputFileName(fileName) printer.setDocName(fileName) preview = QPrintPreviewDialog(printer) preview.paintRequested['QPrinter*'].connect(printFunction) size = QApplication.instance().desktop().screenGeometry() width = size.width() - 100 height = size.height() - 100 preview.setMinimumSize(width, height) preview.exec_()
def _print_preview(tab: apitypes.Tab) -> None: """Show a print preview.""" def print_callback(ok: bool) -> None: if not ok: message.error("Printing failed!") tab.printing.check_preview_support() diag = QPrintPreviewDialog(tab) diag.setAttribute(Qt.WA_DeleteOnClose) diag.setWindowFlags(diag.windowFlags() | Qt.WindowMaximizeButtonHint | Qt.WindowMinimizeButtonHint) diag.paintRequested.connect(functools.partial( tab.printing.to_printer, callback=print_callback)) diag.exec_()
def __init__(self, parent=None, html=None): super(PrintHtml, self).__init__(parent) # html = codecs.open(b"template.html", encoding='utf-8').read() baseurl = QUrl.fromLocalFile(os.getcwd() + "/temp/index.html") self.setHtml(html, baseurl) self.printer = QPrinter() self.printer.setPageSize(QPrinter.A4) self.printer.setOrientation(QPrinter.Portrait) self.printer.setPageMargins(5, 5, 5, 5, QPrinter.Millimeter) self.setFixedWidth(1000) dialog = QPrintPreviewDialog(self.printer) dialog.setWindowState(Qt.WindowMaximized) dialog.paintRequested.connect(self.print_) dialog.setWindowFlags(Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowMinMaxButtonsHint | Qt.WindowCloseButtonHint | Qt.WindowContextHelpButtonHint) dialog.exec()
class HtmlView(QWebEngineView): """Subclass QWebView and connect to a QPrintPreviewDialog object""" def __init__(self, parent=None, url = ""): """ Constructor of HtmlView :param parent: parent of the view :param url: url to load, if set, a loadFInished signal is emitted """ super().__init__(parent) self.html = "" self.setUrl(QUrl(url)) """Open QPrintPreviewDialog dialog window""" self.preview = QPrintPreviewDialog() # just for the moment / buf in Qt leads to incorrect printing of tables fomr QWebKit self.preview.printer().setOutputFormat(QPrinter.PdfFormat) self.preview.printer().setPaperSize(QPrinter.A4) self.textedit = QTextEdit() self.preview.paintRequested.connect(self.printPreview) if url != "": self.loadFinished.connect(self.execpreview) def execpreview(self, arg): self.preview.exec() def printPreview(self, printer): self.textedit.print(printer) def setHtml_(self, html): self.setHtml(html) self.textedit.setHtml(html) # small workaround to find the QPrintPreviewWidget inside the pre-defined dialog and force it to update its content wdg = self.preview.findChild(PyQt5.QtPrintSupport.QPrintPreviewWidget) if wdg is not None: wdg.updatePreview()
def vistaPrevia(self): if not self.documento.isEmpty(): impresion = QPrinter(QPrinter.HighResolution) vista = QPrintPreviewDialog(impresion, self) vista.setWindowTitle("Vista previa") vista.setWindowFlags(Qt.Window) vista.resize(800, 600) exportarPDF = vista.findChildren(QToolBar) exportarPDF[0].addAction(QIcon("exportarPDF.png"), "Exportar a PDF", self.exportarPDF) vista.paintRequested.connect(self.vistaPreviaImpresion) vista.exec_() else: QMessageBox.critical(self, "Vista previa", "No hay datos para visualizar. ", QMessageBox.Ok)
def print_doc(self): dialog = QPrintPreviewDialog() dialog.paintRequested.connect(self.web_view.print_) dialog.exec_()
def print_preview_dialog(self): printer = QPrinter(QPrinter.HighResolution) preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(self.print_preview)
def _print(self): preview_dialog = QPrintPreviewDialog(self._printer, self) preview_dialog.setMinimumSize(cons.PRINT_PREVIEW_DIALOG_WIDTH, cons.PRINT_PREVIEW_DIALOG_HEIGHT) preview_dialog.paintRequested.connect(self._print_preview) preview_dialog.exec_()
def printpage(self, preview=False, count: {'special': 'count'} = None): """Print the current/[count]th tab. Args: preview: Show preview instead of printing. count: The tab index to print, or None. """ if not qtutils.check_print_compat(): # WORKAROUND (remove this when we bump the requirements to 5.3.0) raise cmdexc.CommandError( "Printing on Qt < 5.3.0 on Windows is broken, please upgrade!") tab = self._cntwidget(count) if tab is not None: if preview: diag = QPrintPreviewDialog() diag.setAttribute(Qt.WA_DeleteOnClose) diag.setWindowFlags(diag.windowFlags() | Qt.WindowMaximizeButtonHint | Qt.WindowMinimizeButtonHint) diag.paintRequested.connect(tab.print) diag.exec_() else: diag = QPrintDialog() diag.setAttribute(Qt.WA_DeleteOnClose) diag.open(lambda: tab.print(diag.printer()))
def printsetup(self): self.printer = QPrinter(QPrinter.HighResolution) dialog = QPrintPreviewDialog(self.printer, self) dialog.paintRequested.connect(self.handle_paint_request) dialog.exec_()
def print_preview(self): printer = QPrinter(QPrinter.HighResolution) preview_dialog = QPrintPreviewDialog(printer, self) preview_dialog.paintRequested.connect( lambda: self.ui.main_text.print_(printer)) preview_dialog.exec_()
def handle_preview(self): preview = QPrintPreviewDialog() preview.paintRequested.connect(self.handle_paint) preview.exec()
def Imprimir(self): imprimir = QPrinter(QPrinter.HighResolution) previsualizacao = QPrintPreviewDialog(imprimir, self) previsualizacao.paintRequested.connect(self.printprevia) previsualizacao.exec_()
def PageView(self): preview = QPrintPreviewDialog() preview.paintRequested.connect(self.PaintPageView) preview.exec_()
def show_preview(self): dlg = QPrintPreviewDialog(self.__printing.printer) dlg.paintRequested.connect(self.__print_diagram) dlg.exec_()
def preview(self): preview = QPrintPreviewDialog() # If a print is requested, open print dialog preview.paintRequested.connect(lambda p: self.outputText.print_(p)) preview.exec_()
def on_button_clicked(): printer = QPrinter(QPrinter.HiResolution) previe = QPrintPreviewDialog(printer, )
def kagidadok(self): diyalog = QPrintPreviewDialog() diyalog.paintRequested.connect(self.ciktial) diyalog.exec()
def handle_preview(self): dialog = QPrintPreviewDialog() dialog.setWindowIcon(QIcon('./images/logos/logo.jpg')) dialog.setWindowFlags(dialog.windowFlags() | Qt.WindowSystemMenuHint | Qt.WindowMinMaxButtonsHint) dialog.resize(1050, 700) #dialog.setMinimumSize(1050, 700) dialog.paintRequested.connect(self.handle_paint_request) dialog.exec_()
def printPreview(self): printer = QPrinter(QPrinter.HighResolution) previewDialog = QPrintPreviewDialog(printer, self) previewDialog.paintRequested.connect(self.preview) previewDialog.exec()
def handlePreview(self): dialog = QPrintPreviewDialog() dialog.paintRequested.connect(self.handlePaintRequest) dialog.exec_()
def print_page(self): dlg = QPrintPreviewDialog() dlg.paintRequested.connect(self.browser.print_) dlg.exec_()
def printReview(self): printer = QPrinter(QPrinter.HighResolution) review = QPrintPreviewDialog(printer, self) review.setWindowFlags(QtCore.Qt.Window) review.paintRequested.connect(self.print) review.exec_()
def _print_preview(self): printer = QPrinter(QPrinter.HighResolution) self.preview_dialog = QPrintPreviewDialog(printer, self) self.preview_dialog.paintRequested.connect( self._actually_print_preview) self.preview_dialog.exec_()
class ReportEditor(QMainWindow, Ui_ReportEditorWindow): def __init__(self, processor, parent=None): super().__init__(parent) self.processor = processor self.settings = SupremeSettings() self._report_items = {} self._file_name = None self.setupUi(self) self.splitter.setStretchFactor(0, 1) self.splitter.setStretchFactor(1, 3) self.actionUpdate.triggered.connect(self._create_report) self.usedList.doubleClicked.connect( lambda i: self.usedList.takeItem(i.row())) self._setup_text_editor() self._setup_text_connections() self._init_report_items() def _init_report_items(self): items = [report_class(self.processor, parent=self.availableList) for report_class in _report_classes] factory = AlgorithmReportFactory(self.processor, self.availableList) items += factory.get_report_items() self._report_items = {} for report_item in items: self._report_items[report_item.name] = report_item self.availableList.addItem(report_item) self.availableList.mousePressEvent = self._av_list_mouse_press_event def _av_list_mouse_press_event(self, event: QMouseEvent): if event.button() == Qt.RightButton: item = self.availableList.itemAt(event.pos()) if hasattr(item, 'settings'): item.change_settings() QListWidget.mousePressEvent(self.availableList, event) def _create_report(self): self.textEdit.clear() self.statusbar.showMessage('Создание отчёта...') html = "" for i in range(self.usedList.count()): list_item = self.usedList.item(i) report_item = self._report_items[list_item.text()] html += report_item.create_html() html = encapsulate_html(html) self.textEdit.setHtml(html) self.textEdit.document().setModified(True) self.statusbar.showMessage('Отчёт создан') def _setup_text_editor(self): self.styleComboBox = QComboBox(self.fontToolBar) self.styleComboBox.addItem("Standard") self.styleComboBox.addItem("Bullet List (Disc)") self.styleComboBox.addItem("Bullet List (Circle)") self.styleComboBox.addItem("Bullet List (Square)") self.styleComboBox.addItem("Ordered List (Decimal)") self.styleComboBox.addItem("Ordered List (Alpha lower)") self.styleComboBox.addItem("Ordered List (Alpha upper)") self.styleComboBox.addItem("Ordered List (Roman lower)") self.styleComboBox.addItem("Ordered List (Roman upper)") self.styleComboBox.addItem("Heading 1") self.styleComboBox.addItem("Heading 2") self.styleComboBox.addItem("Heading 3") self.styleComboBox.addItem("Heading 4") self.styleComboBox.addItem("Heading 5") self.styleComboBox.addItem("Heading 6") self.fontToolBar.addWidget(self.styleComboBox) self.fontComboBox = QFontComboBox(self.fontToolBar) # TODO connect self.fontToolBar.addWidget(self.fontComboBox) self.sizeComboBox = QComboBox(self.fontToolBar) # TODO connect sizes = QFontDatabase.standardSizes() [self.sizeComboBox.addItem(str(size)) for size in sizes] self.sizeComboBox.setCurrentIndex( sizes.index(QApplication.font().pointSize())) self.fontToolBar.addWidget(self.sizeComboBox) def _setup_text_connections(self): self.textEdit.currentCharFormatChanged.connect( self._current_char_format_changed) self.textEdit.cursorPositionChanged.connect( self._cursor_position_changed) self.actionSave.triggered.connect(self._save) self.actionSaveAs.triggered.connect(self._save_as) self.actionBrowser.triggered.connect(self._browser) self.actionPrint.triggered.connect(self._print) self.actionPrintPreview.triggered.connect(self._print_preview) self.actionPDF.triggered.connect(self._print_pdf) self.textEdit.document().modificationChanged.connect( self.actionSave.setEnabled) self.textEdit.document().modificationChanged.connect( self.actionSaveAs.setEnabled) self.styleComboBox.activated.connect(self._text_style) self.fontComboBox.currentTextChanged.connect(self._text_family) self.sizeComboBox.currentTextChanged.connect(self._text_size) self.actionTextBold.triggered.connect(self._text_bold) self.actionTextItalic.triggered.connect(self._text_italic) self.actionTextUnderline.triggered.connect(self._text_underline) self.actionTextColor.triggered.connect(self._text_color) self.actionTextLeft.triggered.connect(self._text_align) self.actionTextRight.triggered.connect(self._text_align) self.actionTextCenter.triggered.connect(self._text_align) self.actionTextJustify.triggered.connect(self._text_align) self.actionUndo.triggered.connect(self.textEdit.undo) self.actionRedo.triggered.connect(self.textEdit.redo) self._font_changed(self.textEdit.font()) self._color_changed(self.textEdit.textColor()) self._alignment_changed(self.textEdit.alignment()) self.actionSave.setEnabled(self.textEdit.document().isModified()) self.actionUndo.setEnabled(self.textEdit.document().isUndoAvailable()) self.actionRedo.setEnabled(self.textEdit.document().isRedoAvailable()) QApplication.clipboard().dataChanged.connect( self._clipboard_data_changed) def _save(self): if not self._file_name: return self._save_as() if self._file_name.startswith(':/'): return self._save_as() writer = QTextDocumentWriter(self._file_name) success = writer.write(self.textEdit.document()) if success: self.statusbar.showMessage('Сохранено успешно') else: self.statusbar.showMessage('Ошибка сохранения') def _save_as(self): dialog = QFileDialog(self, 'Сохранить как...') dialog.setAcceptMode(QFileDialog.AcceptSave) mime_types = ["text/html", "text/plain", "application/vnd.oasis.opendocument.text"] dialog.setMimeTypeFilters(mime_types) dialog.setDefaultSuffix("html") if dialog.exec_() != QDialog.Accepted: self.statusbar.showMessage('Сохранение отменено') return False self._file_name = dialog.selectedFiles()[0] return self._save() def _print(self): printer = QPrinter(QPrinter.HighResolution) self.print_dialog = QPrintDialog(printer, self) if self.textEdit.textCursor().hasSelection(): self.print_dialog.addEnabledOption(QPrintDialog.PrintSelection) self.print_dialog.setWindowTitle('Печать') if self.print_dialog.exec_() == QDialog.accepted: self.textEdit.print(printer) self.print_dialog = None def _print_preview(self): printer = QPrinter(QPrinter.HighResolution) self.preview_dialog = QPrintPreviewDialog(printer, self) self.preview_dialog.paintRequested.connect( self._actually_print_preview) self.preview_dialog.exec_() def _browser(self, not_open=False): filename = f'{self.settings["tempdir"]}/temp_report.html' writer = QTextDocumentWriter(filename) writer.write(self.textEdit.document()) if not not_open: webbrowser.open_new(filename) def _actually_print_preview(self, printer: QPrinter): self.textEdit.print(printer) def _print_pdf(self): dialog = QFileDialog(self, 'Сохранить в PDF') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setMimeTypeFilters(['application/pdf']) dialog.setDefaultSuffix('pdf') if dialog.exec_() != QDialog.Accepted: return name = dialog.selectedFiles()[0] self._browser(True) pdfkit.from_file(f'{self.settings["tempdir"]}/temp_report.html', name) self.statusbar.showMessage('Экспорт успешен') if platform.system() == 'Darwin': # macOS subprocess.call(('open', name)) elif platform.system() == 'Windows': # Windows os.startfile(name) else: # linux variants subprocess.call(('xdg-open', name)) def _text_bold(self): fmt = QTextCharFormat() fmt.setFontWeight(QFont.Bold if self.actionTextBold.isChecked() else QFont.Normal) self._merge_text_format(fmt) def _text_italic(self): fmt = QTextCharFormat() fmt.setFontItalic(self.actionTextItalic.isChecked()) self._merge_text_format(fmt) def _text_underline(self): fmt = QTextCharFormat() fmt.setFontUnderline(self.actionTextUnderline.isChecked()) self._merge_text_format(fmt) def _merge_text_format(self, format): cursor = self.textEdit.textCursor() if not cursor.hasSelection(): cursor.select(QTextCursor.WordUnderCursor) cursor.mergeCharFormat(format) self.textEdit.mergeCurrentCharFormat(format) def _cursor_position_changed(self): self._alignment_changed(self.textEdit.alignment()) text_list = self.textEdit.textCursor().currentList() if text_list: list_formats = [ QTextListFormat.ListDisc, QTextListFormat.ListCircle, QTextListFormat.ListSquare, QTextListFormat.ListDecimal, QTextListFormat.ListLowerAlpha, QTextListFormat.ListUpperAlpha, QTextListFormat.ListLowerRoman, QTextListFormat.ListUpperRoman ] try: list_index = list_formats.index(text_list.format().style()) except ValueError: list_index = -1 self.styleComboBox.setCurrentIndex(list_index) else: heading_level = self.textEdit.textCursor().blockFormat() \ .headingLevel() self.styleComboBox.setCurrentIndex( heading_level + 8 if heading_level else 0) def _current_char_format_changed(self, format): self._font_changed(format.font()) self._color_changed(format.foreground().color()) def _text_style(self, index: int): styles = { 1: QTextListFormat.ListDisc, 2: QTextListFormat.ListCircle, 3: QTextListFormat.ListSquare, 4: QTextListFormat.ListDecimal, 5: QTextListFormat.ListLowerAlpha, 6: QTextListFormat.ListUpperAlpha, 7: QTextListFormat.ListLowerRoman, 8: QTextListFormat.ListUpperRoman } cursor = self.textEdit.textCursor() try: style = styles[index] except KeyError: style = None cursor.beginEditBlock() block_fmt = cursor.blockFormat() if style is None: block_fmt.setObjectIndex(-1) heading_level = index - 9 + 1 if index >= 9 else 0 block_fmt.setHeadingLevel(heading_level) cursor.setBlockFormat(block_fmt) size = 4 - heading_level if heading_level else 0 fmt = QTextCharFormat() fmt.setFontWeight(QFont.Bold if heading_level else QFont.Normal) fmt.setProperty(QTextFormat.FontSizeAdjustment, size) cursor.select(QTextCursor.LineUnderCursor) cursor.mergeCharFormat(fmt) self.textEdit.mergeCurrentCharFormat(fmt) else: list_fmt = QTextListFormat() if cursor.currentList(): list_fmt = cursor.currentList().format() else: list_fmt.setIndent(block_fmt.indent() + 1) block_fmt.setIndent(0) cursor.setBlockFormat(block_fmt) list_fmt.setStyle(style) cursor.createList(list_fmt) cursor.endEditBlock() def _text_family(self, font: str): fmt = QTextCharFormat() fmt.setFontFamily(font) self._merge_text_format(fmt) def _text_size(self, size: str): size = float(size) fmt = QTextCharFormat() fmt.setFontPointSize(size) self._merge_text_format(fmt) def _text_color(self): col = QColorDialog.getColor(self.textEdit.textColor(), self) if not col.isValid(): return fmt = QTextCharFormat() fmt.setForeground(col) self._merge_text_format(fmt) self._color_changed(col) def _text_align(self): action = self.sender() if action == self.actionTextLeft: self.textEdit.setAlignment(Qt.AlignLeft | Qt.AlignAbsolute) elif action == self.actionTextCenter: self.textEdit.setAlignment(Qt.AlignHCenter) elif action == self.actionTextRight: self.textEdit.setAlignment(Qt.AlignRight | Qt.AlignAbsolute) elif action == self.actionTextJustify: self.textEdit.setAlignment(Qt.AlignJustify) def _font_changed(self, font): self.fontComboBox.setCurrentIndex(self.fontComboBox.findText( QFontInfo(font).family())) self.sizeComboBox.setCurrentIndex(self.sizeComboBox.findText( str(int(font.pointSize())))) self.actionTextBold.setChecked(font.bold()) self.actionTextItalic.setChecked(font.italic()) self.actionTextUnderline.setChecked(font.underline()) def _color_changed(self, color): pass def _alignment_changed(self, alignment): [a.setChecked(False) for a in (self.actionTextLeft, self.actionTextRight, self.actionTextCenter, self.actionTextJustify)] if alignment & Qt.AlignLeft: self.actionTextLeft.setChecked(True) elif alignment & Qt.AlignHCenter: self.actionTextCenter.setChecked(True) elif alignment & Qt.AlignRight: self.actionTextRight.setChecked(True) elif alignment & Qt.AlignJustify: self.actionTextJustify.setChecked(True) def _clipboard_data_changed(self): md = QApplication.clipboard().mimeData() if md: self.actionTextPaste.setEnabled(md.hasText())
def filePrintPreview(self): printer = QPrinter(QPrinter.HighResolution) preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(self.printPreview) preview.exec_()
def printTool(self): printer = QPrinter(QPrinter.HighResolution) # dialog = QPrintDialog(printer, self) dialog = QPrintPreviewDialog(printer, self) dialog.paintRequested.connect(lambda: self.textEdit.print_(printer)) dialog.exec_()
def printpage(self, preview=False, count: {'special': 'count'}=None): """Print the current/[count]th tab. Args: preview: Show preview instead of printing. count: The tab index to print, or None. """ if not qtutils.check_print_compat(): # WORKAROUND (remove this when we bump the requirements to 5.3.0) raise cmdexc.CommandError( "Printing on Qt < 5.3.0 on Windows is broken, please upgrade!") tab = self._cntwidget(count) if tab is not None: if preview: diag = QPrintPreviewDialog() diag.setAttribute(Qt.WA_DeleteOnClose) diag.setWindowFlags(diag.windowFlags() | Qt.WindowMaximizeButtonHint | Qt.WindowMinimizeButtonHint) diag.paintRequested.connect(tab.print) diag.exec_() else: diag = QPrintDialog() diag.setAttribute(Qt.WA_DeleteOnClose) diag.open(lambda: tab.print(diag.printer()))
def on_printAction2_triggered(self): dialog = QPrintPreviewDialog() dialog.paintRequested.connect(self.handlePaintRequest) dialog.exec_()