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