当前位置:首页 > 话题广场 > 问答专区 > 科技

实战PyQt5: 080-打印输出

Qt为打印提供了广泛的跨平台支持。

使用每个平台上的打印系统,Qt应用程序可以打印到连接的打印机,也可以跨网络打印到远程打印机。Qt的打印系统还支持PDF文件生成。

Qt提供了一些类来支持打印机的选择和设置以及打印输出

  • QPageSetupDialog,页面配置对话框,用于配置打印机上与页面相关的选项。
  • QPrintDialog, 用于指定打印机配置的对话框。
  • QPrintEngine,定义一个接口,用于QPrinter如何与给定的打印子系统交互。
  • QPrintPreviewDialog, 打印预览对话框,用于预览和配置打印机输出页面布局。
  • QPrintPreviewWidget, 打印预览部件,用于预览输出到打印机的页面布局。
  • QPrinter, 在打印机上绘图的绘图设备。
  • QPrinterInfo, 访问有关现有打印机的信息。

在Qt中,打印机由QPrinter来代表,QPrinter是一种绘图设备,可以提供特定的打印功能支持,例如支持多页和双面输出。

QPrinter

QPrinter类是在打印机上绘图的绘图设备。该设备代表一系列的打印输出页面,其使用方式和其他绘图设备(如QWidget和QPixmap)几乎完全相同。在Windows或macOS上直接打印到打印机时,QPrinter使用内置的打印机驱动程序。在X11上,QPrinter使用通用Unix打印系统(CUPS)将PDF输出发送到打印机。

注意,在无效打印机上设置纸张尺寸和分辨率等参数是未定义的。

QPrinter常用方法:

  • setPageLayout(): 设置页面布局;
  • setPageMargins(): 按当前单位来设置页边距,成功设置返回True;
  • setPageOrder(): 设置页面顺序;
  • setPageOrientation(): 设置页面方面,打印机驱动程序读取此设置,并以指定的方向打印页面;
  • setPageSize(): 设置页面大小;
  • setPapersource(): 设置纸张来源;
  • setPrintRange(): 设置打印范围;
  • setResolution(): 设置打印分辨率。

QPrinter类继承关系:

QPageSetupDialog

QPageSetupDialog类为打印机上与页面相关的选项提供了一个配置对话框。在Windows和macOS上,页面设置对话框是使用本机页面设置对话框实现的。

QPageSetupDialog类继承关系:

QPrintDialog

QPrintDialog类提供了一个用于指定打印机配置的对话框。该对话框允许用户更改与文档相关的设置,例如纸张尺寸和方向,打印类型(彩色或灰度),页面范围以及要打印的份数。它提供控件以使用户能够从可用的打印机中进行选择,包括任何已配置的网络打印机。 在Windows和macOS上,使用本机打印对话框。

QPrintDialog常用方法:

  • open(): 打开对话框并将其accepted()信号连接到receiver和member指定的插槽。关闭对话框后,信号将从插槽中断开;
  • printer(): 返回操作此打印机对话框的打印机;
  • setOption(): 启用或者清除指定的设置;
  • testOption(): 测试是否启动了给定的选项设置,如果启用了,返回True,否则返回False。

QPrintDialog常用信号:

  • accepted: 当用户接受在打印对话框中设置的值时,将发出此信号。该打印机参数包括设置被应用到打印机。

QPrintDialog类继承关系:

测试代码

测试代码演示了使用QTextEdit加载一个文本文件,然后进行页面设置,选择打印机后,使用QTex() 函数完成打印。完整代码如下:

import sys from PyQt5 import QtCore, QtGui, QtWidgets from PyQ import (QApplication, QMainWindow, QMenuBar, QMenuBar, QAction,                              QTextEdit, QDialog, QFileDialog, QMessageBox) from PyQ import QPageSetupDialog,QPrintDialog, QPrinter   class DemoPrint(QMainWindow):     def __init__(self, parent=None):         super(DemoPrint, self).__init__(parent)                     # 设置窗口标题         ('实战PyQt5: 打印输出演示')               # 设置窗口大小         (600, 400)                 = QPrinter()         ()              def initUi(self):         #菜单条         menuBar = ()         menuFile = menuBar.addMenu('文件')                  #文件         aOpen = QAction('打开...', self)         aO)         aPageSetup = QAction('页面设置', self)         aPageSe)         aPrint = QAction('打印', self)         aPrint.)         aExit = QAction('退出', self)         aExit.)                  menuFile.addAction(aOpen)         menuFile.addAction(aPageSetup)         menuFile.addAction(aPrint)         menuFile.addSeparator()         menuFile.addAction(aExit)                  #窗口          = QTextEdit()                  #设置为中心窗口         ()          def msgCritical(self, strInfo):         dlg = QMessageBox(self)         dlg.setIcon)         dlg.setText(strInfo)         dlg.show()              def onFileOpen(self):         path,_ = QFileDialog.getOpenFileName(self, '打开文件', '', '文本文件 (*.txt)')         if path:             try:                 with open(path, 'r') as f:                     text = f.read()             except Exception as e:                 (str(e))             else:                  = path                 .setPlainText(text)          def onFilePageSetup(self):         dlgPageSetup = QPageSetupDialog(, self)         dlgPageSe()              def onFilePrint(self):         dlgPrint = QPrintDialog(, self)         if QDialog.Accepted == dlgPrint.exec():             .print()          if __name__ == '__main__':     app = QApplication)     window = DemoPrint()     window.show()     ()) 

运行结果如下图:

测试打印输出

本文知识点

  • Qt打印支持系统;
  • QPrinter是向打印机绘图的绘图设备;
  • QPageSetupDialong设置打印页面边距;
  • QPrintDialog选择打印机;
  • QTex() 函数实现具体的打印。

喜欢本文内容就关注, 收藏,点赞,评论和转发。

1.《实战PyQt5: 080-打印输出》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《实战PyQt5: 080-打印输出》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3275317.html

上一篇

晒出生活美好,记录幸福时光!汉印CP4000L小型照片打印机体验

下一篇

打印机历史怎么删除?我来告诉你答案翻新机XP-442爱普生xp-445打印机清零

qt怎么连接打印机?总结很全面速看!QT使用教程(四)之初体验

  • qt怎么连接打印机?总结很全面速看!QT使用教程(四)之初体验
  • qt怎么连接打印机?总结很全面速看!QT使用教程(四)之初体验
  • qt怎么连接打印机?总结很全面速看!QT使用教程(四)之初体验
qt怎么连接打印机?终于找到答案了Qt编写的项目作品25-硬件综合应用(热敏打印+身份证+短信猫)

qt怎么连接打印机?终于找到答案了Qt编写的项目作品25-硬件综合应用(热敏打印+身份证+短信猫)

qt怎么连接打印机相关介绍,# # 1,功能特性 # # # # (a),串行列印 1.标准热打印协议分析,无依赖性,支持所有系统 2. 可打印各种文字信息比如访客单、报警信息等。 3. 可打印条形码即一维码。 4. 可打印二维...

关于qt怎么连接打印机,你需要知道这些Qt编写气体安全管理系统11-数据打印

关于qt怎么连接打印机,你需要知道这些Qt编写气体安全管理系统11-数据打印

qt怎么连接打印机相关介绍,一、前言 在各种软件系统中,打印数据通常是将查询的数据结果导出到excel中,直接打印查询的数据结果,从而为Qt提供打印机类QPrinter,并将文本内容从printsupport组件传递到QText...

关于qt怎么连接打印机,你需要知道这些非常简单,解决Qt免驱方式POS打印机打印中文乱码问题

关于qt怎么连接打印机,你需要知道这些非常简单,解决Qt免驱方式POS打印机打印中文乱码问题

qt怎么连接打印机相关介绍,1.设备是文件 在Linux上安装打印机Linux驱动程序并不容易。所有类型的小票POS打印机几乎只有windows驱动程序,在Linux上测试各种不同的打印机驱动程序是不正常的。 后来想到Linux...