113.PyQt5_QtPrintSupport_打印操作

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈

QtPrintSupport_打印操作
- 前言
- QPaintDevice
- QPagedPaintDevice
- QtPrintSupport
- QAbstractPrintDialog
- QPrintDialog
- QPageSetupDialog
- QPrinter
- QPrintPreviewWidget
- QPrintPreviewDialog
- QPrintEngine
- QPrinterInfo
前言
- 打印图像是图像处理软件中的一个常用功能,打印图像实际上是在
QPaintDevice中画图,与平时在QWidget、QPixmap和QImage中画图是一样的,都是创建一个QPainter对象进行画图的 - 只是打印使用的是
QPrinter,它的本质上也是一个QPaintDevice(绘图设备) - 打印预览是通过
QtPrintSupport模块中的QPrintPreviewWidget或者QPrintPreviewDialog来实现
QPagedPaintDevice(QPaintDevice) # 支持多个页面的PaintDevice (绘图设备)QtPrintSupport.pyQPrinter(PyQt5.QtGui.QPagedPaintDevice) # 在打印机上作画的装置QPrintPreviewWidget(PyQt5.QtWidgets.QWidget) # 用于预览打印机输出的页面布局的小部件QPrintPreviewDialog(PyQt5.QtWidgets.QDialog) # 用于预览和配置打印机输出的页面布局的对话框QPageSetupDialog(PyQt5.QtWidgets.QDialog) # 配置对话框,用于打印机上与页面相关的选项QAbstractPrintDialog(PyQt5.QtWidgets.QDialog) # 用于配置打印机的打印对话框的基本实现QPrintDialog(QAbstractPrintDialog) # 用于指定打印机配置的对话框QPrintEngine(sip.simplewrapper) # 定义QPrinter与给定打印子系统交互的接口QPrinterInfo(sip.simplewrapper) # 提供对现有打印机信息的访问
QPaintDevice
- 描述
- QPaintDevice类是可以用QPainter绘制的对象的基类
- QPaintDevice的绘图功能目前由QWidget、qmage、QPixmap、QGLPixelBuffer、QPicture和QPrinter子类实现
- 为了实现对新后端的支持,您必须从QPaintDevice派生并重新实现虚拟paintenengine)函数,以告诉QPainter应该使用哪个绘制引擎在这个特定的设备上绘制
- 还必须创建一个相应的绘画引擎,以便能够在设备上绘画,即从qpaintenengine派生并重新实现其虚拟功能
- 继承自:qmage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, QWidget
- 常用API
QPaintDevice 类提供了几个返回各种设备度量的函数 depth() # 返回其位深度(位平面的数量) height() # 以默认坐标系单位(例如QPixmap和QWidget的像素)返回其高度 heightMM() # 以毫米为单位返回设备的高度 width() # 分别以默认坐标系单位返回设备的宽度 widthMM() # 分别以毫米为单位返回设备的宽度metric() # 通过指定所需的PaintDeviceMetric作为参数来检索度量信息 logicalDpiX() logicalDpiY() # 返回设备的水平和垂直分辨率,单位为每英寸点数 physicalDpiX() physicalDpiY() # 返回设备的分辨率(单位为每英寸点数)# 如果逻辑和物理分辨率不同,相应的qpaintenengine必须处理映射 colorCount() # 函数返回绘制设备可用的不同颜色的数量
QPagedPaintDevice
- 描述
- QPagedPaintDevice 类代表了一个支持多个页面的 PaintDevice (绘图设备)
- 分页绘制设备用于生成打印或PDF等格式的输出
- QPdfWriter 和 QPrinter 继承自它
- 继承自:QPaintDevice
- 常用API
margins() # 返回绘制设备的当前边距。默认值为0,单位是毫米 setMargins(Margins) # 设置要使用的页边距为页边距。 # 边距纯粹是对绘制方法的提示。它们不影响坐标系统或裁剪。 setPageMargins(QMarginsF) → bool # 设置页边距pageLayout() # 返回当前页面布局# 使用这个方法可以访问当前的QPageSize、Orientation、QMarginsF、fullRect()和paintRect()。# 注意:不能在返回的对象上使用setter,您必须调用单独的QPagedPaintDevice.setter或使用setPageLayout() setPageLayout(QPageLayout) → bool # 设置页面布局pageSize() # 返回当前使用的页面大小 pageSizeMM() # 返回以毫米为单位的页面大小setPageSize(PageSize) # 设置页面大小为size。 setPageSizeMM(QSizeF) # 设置页面大小为size,尺寸以毫米为单位指定。# 如果大小与标准PageSize匹配,则使用该页面大小,否则将设置Custom。setPageOrientation(Orientation) → bool # 设置页面方向
QtPrintSupport
- PyQt为打印提供了广泛的跨平台支持。使用每个平台上的打印系统,PyQt应用程序可以打印到连接的打印机上,也可以通过网络打印到远程打印机上。
- PyQt的打印系统还支持PDF文件生成,为基本报表生成工具提供了基础
- 在PyQt中,打印机由QPrinter表示,QPrinter是一个绘图设备,它提供了特定于打印的功能,例如支持多页和双面输出。因此,打印需要使用QPainter在一系
列页面上进行绘制,就像在自定义小部件或图像上进行绘制一样 - 包含类
QtPrintSupport.py QAbstractPrintDialog(PyQt5.QtWidgets.QDialog) # 用于配置打印机的打印对话框的基本实现 QPrintDialog(QAbstractPrintDialog) # 用于指定打印机配置的对话框 QPageSetupDialog(PyQt5.QtWidgets.QDialog) # 配置对话框,用于打印机上与页面相关的选项QPrinter(PyQt5.QtGui.QPagedPaintDevice) # 在打印机上作画的装置QPrintPreviewWidget(PyQt5.QtWidgets.QWidget) # 用于预览打印机输出的页面布局的小部件 QPrintPreviewDialog(PyQt5.QtWidgets.QDialog) # 用于预览和配置打印机输出的页面布局的对话框QPrintEngine(sip.simplewrapper) # 定义QPrinter与给定打印子系统交互的接口 QPrinterInfo(sip.simplewrapper) # 提供对现有打印机信息的访问
QAbstractPrintDialog
- 描述
- QAbstractPrintDialog类提供了一个基实现,用于配置打印机的打印对话框
- 这个类实现了用于自定义打印对话框中显示的设置getter和setter函数,但它不能直接使用。使用QPrintDialog在你的应用程序中显示打印对话框
- 继承自:QDialog
- 常用API
QAbstractPrintDialog(QPrinter, parent: QWidget = None) # 构造函数 exec() → int exec_() → int # 这个虚函数被调用,弹出对话框。它必须重新实现在子类中printer() → QPrinter # 返回此打印机对话框所操作的打印机fromPage() → int # 返回要打印的第一页,默认值为0 toPage() → int # 返回要打印的最后一页,默认值为0maxPage() → int # 返回打印范围中的最大页 minPage() → int # 返回打印范围中的最小页 printRange() → PrintRange # 返回打印范围setPrintRange(PrintRange) # 设置打印对话框中的打印范围 setFromTo(m, n) # 设置打印对话框中的范围从m到n setMinMax(int, int) # 将打印对话框中的页范围设置为从最小到最大# 会启用PrintPageRange选项 setOptionTabs(Iterable[QWidget]) # 如果支持,将小部件列表设置为在打印对话框中显示的选项卡。# 目前这个选项只在X11上受支持。# 设置选项卡将把它们的所有权转移到打印对话框enabledOptions() → PrintDialogOptions setEnabledOptions(Union[PrintDialogOptions, PrintDialogOption])QAbstractPrintDialog.PrintDialogOption # 用于指定打印对话框的部分应该是可见的# QAbstractPrintDialog.None # 没有一个选项被启用。# QAbstractPrintDialog.PrintToFile # 到文件选项打印已启用。# QAbstractPrintDialog.PrintSelection # 打印选择的选项被启用。# QAbstractPrintDialog.PrintPageRange # 页面范围选择的选项被启用。# QAbstractPrintDialog.PrintShowPageSize # 显示页面大小+页边距仅当启用此功能。# QAbstractPrintDialog.PrintCollateCopies # 启用了分页复印选项# QAbstractPrintDialog.PrintCurrentPage # 打印当前页面的选项被启用QAbstractPrintDialog.PrintRange # 用于指定打印范围选择选项# QAbstractPrintDialog.AllPages # 0 所有网页应打印。# QAbstractPrintDialog.Selection # 1 唯一的选择应打印。# QAbstractPrintDialog.PageRange # 2 指定页面范围应打印。# QAbstractPrintDialog.CurrentPage # 3 只有当前可见的页面应该被打印出来
QPrintDialog
- 描述
- QPrintDialog是一个用于显示打印对话框的类
- 该对话框允许用户更改与文档相关的设置,例如纸张大小和方向、打印类型(彩色或灰度)、页面范围和要打印的副本数量
- 还提供了控件,使用户能够从可用的打印机(包括任何已配置的网络打印机)中进行选择
- 通常,OPrintDialog对象是用OPrinter对象构造的,并使用exec()函数执行
- 继承自:QAbstractPrintDialog
- 常用API
# 构造函数 QPrintDialog(parent: QWidget = None) # 实例化一个打印对话框对象 QPrintDialog(QPrinter, parent: QWidget = None) # 实例化一个打印对话框对象,并关联给定的打印机对象exec() → int # 显示打印对话框并执行事件循环 exec_() → int# 返回用户点击的按钮:QDialog.Accepted(打印)或QDialog.Rejected(取消) open() # 显示打印对话框并执行事件循环 open(PYQT_SLOT) # 显示打印对话框并执行事件循环# 打开对话框并将其accept()信号连接到由接收器和成员指定的插槽# 当对话框关闭时,信号将从插槽断开printer() # 获取与打印对话框所操作的打印机对象# 这在使用QPrintDialog.open()方法时非常有用 setPrinter(QPrinter *printer) # 设置与打印对话框关联的打印机对象options() # 获取打印对话框的选项 testOption(PrintDialogOption) → bool # 检查打印对话框指定的选项是否被启用 setOption(PrintDialogOption option, bool on = true) # 设置打印对话框的选项,影响对话框外观的各种选项# 如果on为true,则设置给定选项为启用;否则,清除给定的选项 setOptions(Union[PrintDialogOptions, PrintDialogOption])done(int) # 关闭对话框并将其结果代码设置为result# 如果这个对话框是用exec()显示的,done会导致本地事件循环完成,exec()返回结果 - 可用信号
accepted() accepted(QPrinter) # 当用户接受打印对话框中设置的值时,就会发出这个信号。打印机参数包括应用设置的打印机
QPageSetupDialog
- 描述
- QPageSetupDialog类为打印机上与页面相关的选项提供了一个配置对话框
- 在Windows和macoS上,页面设置对话框是使用本机页面设置对话框实现的。
- 请注意,在Windows和macOS上,自定义纸张大小不会反映在本机页面设置对话框中
- 此外,在QPrinter上设置的自定义页边距不会显示在本机macoS页面设置对话框中
- 继承自:QDialog
- 常用API
# 构造函数
QPageSetupDialog() # 构造一个页面设置对话框
QPageSetupDialog(QWidget *parent = nullptr) # 构造一个页面设置对话框,并设置父控件
QPageSetupDialog(QPrinter *printer, QWidget *parent = nullptr) # 构造一个页面设置对话框,在配置一个默认构造的QPrinter的同时设置父控件printer() # 获取传递给QPageSetupDialog构造函数的打印机done(int result)
exec() # 调用这个虚函数来弹出对话框。它必须在子类中重新实现
open(QObject *receiver, const char *member) # 打开对话框并将其accept()信号连接到由接收器和成员指定的插槽# 当对话框关闭时,信号将从插槽断开
QPrinter
- 描述
- QPrinter类是一个绘图设备,用于在打印机上绘图
- 该设备表示一系列的打印输出页面,其使用方式与其他绘画设备(如:QWidget和QPixmap)几乎完全相同
- 提供了组附加功能来管理特定于设备的特性,例如方向和分辨率,并在生成文档时逐步遍历文档中的页面
- 当直接打印到Windows或macos上的打印机时,OPrinter使用内置的打印机驱动程序
- 在X11上,QPrinter使用通用Unix打印系统(CUPS)将PDF输出发送到打印机。作为一种选择,printProgram(函数可用于指定要使用的命令或实用程序,而不是系统默认值
- 请注意,在无效打印机上设置纸张大小和分辨率等参数是未定义的。你可以用Printer.isValid()在更改任何参数之前验证这一点
- QPrinter支持许多参数,最终用户可以通过打印对话框更改其中的大多数参数。在一般来说,QPrinter将这些函数传递给底层的qprintenengine
- 当QPainter.begin()被调用时,它所操作的QPrinter已经为一个新的页面做好了准备,这使得QPainter可以立即用于绘制文档中的第一页。
- 一旦绘制了第一页,就可以调用newPage(来请求绘制新的空白页,或者调用QPainter.end()来完成打印。
- 在绘制第二页和后面的所有页面之前,使用对newPage()的调用来准备它们
- 文档中的第一页不需要先调用newPage()。只有在需要在打印文档的开头插入空白页时,才需要在QPainter.begin()之后调用newPage()
- 类似地,在绘制文档中的最后一页后调用newPage()将导致在打印文档的末尾追加一个空白页
- 如果要中止打印作业,abort()将尽力停止打印。它可能会取消整个作业或只是部分作业
- 由于QPrinter可以打印到任何QPrintEngine的子类,因此可以通过创建OPrintEngine的子类并重新实现其接口来扩展打印支持,以覆盖新的打印子系统类型
- 继承自:QPagedPaintDevice
- 枚举类型
# 打印颜色 QPrinter.ColorModeQPrinter.Color # 1 如果可用,以彩色打印,否则以灰度打印QPrinter.GrayScale # 0 以灰度打印,即使在彩色打印机上也是如此# 单双面打印 QPrinter.DuplexModeQPrinter.DuplexNone # 0 单面打印QPrinter.DuplexAuto # 1 打印机的默认设置,用于确定是否使用双面打印QPrinter.DuplexLongSide # 2 双面打印,长边翻转QPrinter.DuplexShortSide # 3 双面打印,短边翻转# 打印方向 # 此枚举类型(不要与Orientation混淆)用于指定每个页面的方向 QPrinter.OrientationQPrinter.Portrait # 0 纵向,页面的高度大于宽度QPrinter.Landscape # 1 横向,页面的宽度大于高度# 打印格式 QPrinter.OutputFormatQPrinter.NativeFormat # 0 QPrinter将使用它运行的平台定义的方法打印输出。当直接打印到打印机时,此模式是默认的QPrinter.PdfFormat # 1 QPrinter将生成一个可搜索的PDF文件。当打印到文件时,此模式是默认的# 打印顺序 QPrinter.PageOrderQPrinter.FirstPageFirst # 0 编号最低的那一页优先打印QPrinter.LastPageFirst # 1 编号最高的那一页优先打印# 纸张大小 # QPrinter不检查纸张尺寸是否可用;它只是使用这些信息 # 连同QPrinter.Orientation 和QPrinter.setFullPage(),来确定可打印的区域 QPrinter.PaperSize# 标准Postscript和Windows Executive大小QPageSize.ExecutiveStandard# 标准Postscript和Windows DMPAPER_FOLIO大小QPageSize.FanFoldGermanLegalQPageSize.PageSizeId.A0...QPageSize.PageSizeId.LastPageSize# Letter、Legal、Folio、Executive是纸张尺寸的意思# 应用于加拿大、美国和墨西哥等国家# 各自的尺寸:# Letter 216毫米x279毫米# Legal 216毫米×356毫米# Folio 216毫米×330毫米# Executive 184毫米x267毫米 # 纸张大小还可以使用QPagedPaintDevice枚举QPagedPaintDevice.A0...QPagedPaintDevice.LastPageSize# 纸张来源(仅Windows有效) # 是否会设置纸张来源取决于打印机是否具有该特定来源 QPrinter.PaperSourceQPrinter::Auto...QPrinter.LastPaperSource# 打印范围 QPrinter.PrintRangeQPrinter.AllPages # 0 打印所有页面QPrinter.Selection # 1 打印选定内容QPrinter.PageRange # 2 打印指定的页面范围QPrinter.CurrentPage # 3 只打印当前页面# 打印模式(分辨率) QPrinter.PrinterModeQPrinter.ScreenResolution # 0 将打印设备的分辨率设置为屏幕分辨率QPrinter.PrinterResolution # 1 此值已弃用QPrinter.HighResolution # 2 将打印机分辨率设置为为正在使用的打印机定义的分辨率# 打印设备状态 QPrinter.PrinterStateQPrinter.Idle # 0 空闲QPrinter.Active # 1 活跃的QPrinter.Aborted # 2 异常中止连接QPrinter.Error # 3 错误# 指定页面和纸张大小的测量单位 QPrinter.UnitQPrinter.Millimeter # 0 毫米QPrinter.Point # 1 单位被定义为1/72英寸QPrinter.Inch # 2 英寸QPrinter.Pica # 3 QPrinter.Didot # 4QPrinter.Cicero # 5QPrinter.DevicePixel # 6 单位与分辨率有关,并基于打印机上的实际像素或点 - 常用API
# 构造函数 # 实例化打印机对象 QPrinter() # 实例化打印机对象,并指定打印机信息和打印模式 QPrinter(const QPrinterInfo &printer, QPrinter.PrinterMode mode = ScreenResolution) # 实例化打印机对象,并指定模式 QPrinter(QPrinter.PrinterMode mode = ScreenResolution)abort() # 中止当前的打印运行# 如果打印运行被成功中止,则返回true, PrinterState()将返回QPrinter.aborted;# 如果打印运行中止失败,则返回false# 并非总是可以中止打印作业。例如,所有数据都已发送到打印机,但打印机不能或不会在被要求取消作业时取消该作业 collateCopies() # 返回是否启用选择多个副本 colorMode() # 返回当前颜色模式 copyCount() # 返回要打印的拷贝数。缺省值为1 creator() # 返回创建文档的应用程序的名称 docName() # 返回文档名称 duplex() # 返回当前双工模式 fontEmbeddingEnabled() # 如果启用了字体嵌入,则返回true fromPage() # 返回要打印的页面范围中第一页的页码# 默认情况下,返回0,表示“from page”设置未设置 fullPage() # 返回打印机坐标系统的原点是否在页面的角上 isValid() # 返回当前选择的打印机是否有效,或者是纯PDF打印机 newPage() # 弹出当前页面并在新页面上继续打印。如果成功返回true;否则返回false# 在非活动QPrinter对象上调用newPage()总是会失败 outputFileName() # 返回输出文件的名称。默认是空字符串(表示打印机不应该打印到file) outputFormat() # 返回此打印机的输出格式 pageLayout() # 返回当前页面布局 pageOrder() # 返回当前页面顺序 pageRect(QPrinter.Unit) # 以指定单位返回打印区域大小 paperRect(QPrinter.Unit) # 以指定单位返回纸张的大小 paperSource() # 返回打印机的纸张源(手动或托盘或纸盒) pdfVersion() # 返回此打印机的PDF版本。默认为PdfVersion_1_4 printEngine() # 返回打印机使用的打印引擎 printProgram() # 返回将打印输出发送到打印机的程序的名称 printRange() # 返回QPrinter的页面范围。打开打印设置对话框后,该函数返回用户选择的值 printerName() # 返回打印机名称。该值最初设置为默认打印机的名称 printerSelectionOption() # 返回打印机选项选择字符串,默认返回空字符串,意味着以与系统相关的方式选择打印机 printerState() # 返回打印机的当前状态。这可能并不总是准确的 resolution() # 返回当前假定的打印机分辨率,由setResolution()或打印机驱动程序设置 supportedPaperSources() # 返回此打印机支持的纸张大小。仅在windows中可用 supportedResolutions() # 返回打印机表示支持的分辨率列表(每英寸点整数列表) supportsMultipleCopies() # 打印机是否支持在一个作业中打印同一文档的多个副本 toPage() # 返回要打印的页面范围中最后一页的页码PaintEngine()setOrientation() # 设置页面方向 setPaperSize() # 设置纸张大小 setResolution(int dpi) # 设置分辨率,单位是每英寸点(DPI)。 setFullPage(bool fp) # 如果fp为true,则支持在整个页面上绘制;否则将绘画限制在设备报告的可打印区域。 setCopyCount(int count) # 设置打印份数 setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine) # QPrinter的子类使用这个函数来指定自定义打印和绘制引擎(分别是printenengine和paintenengine) setCollateCopies(bool collate) # 设置出现打印对话框时排序复选框的默认值 setColorMode(QPrinter.ColorMode newColorMode) # 设置打印机的颜色模式 setCreator(const QString &creator) # 设置创建文档的应用程序的名称 setDocName(const QString &name) # 设置文档名称,文档名称不会影响文件名 setDuplex(QPrinter.DuplexMode duplex) # 启用基于双面模式的双面打印 setFontEmbeddingEnabled(bool enable) # 是否启用字体嵌入 setFromTo(int from, int to) # 设置要打印的页面范围,由from和to指定编号的页面# from和to都设置为0,则将打印整个文档 setOutputFileName(const QString &fileName) # 设置输出文件的名称# 文件名称设置为null或空名称(0或"")将禁用打印到文件。设置非空名称可以打印到文件 setOutputFormat(QPrinter.OutputFormat format) # 设置此打印机要格式化的输出格式 setPageLayout(const QPageLayout &newLayout) # 设置页面布局 setPageMargins(const QMarginsF &margins) # 使用当前单位设置页边距为页边距。如果成功设置页边距,则返回true setPageMargins(const QMarginsF &margins, QPageLayout.Unit units) # 设置页边距为给定单位的页边距。如果没有提供单位,则使用当前单位 setPageOrder(QPrinter.PageOrder pageOrder) # 设置页面打印顺序 setPageOrientation(QPageLayout.Orientation orientation) # 设置页面方向为纵向或横向 setPageSize(const QPageSize &pageSize) # 设置页面大小 setPaperSource(QPrinter.PaperSource source) # 设置纸张源 setPdfVersion(QPagedPaintDevice.PdfVersion version) # 设置打印机的PDF版本 setPrintProgram(const QString &printProg) # 设置将应该执行打印作业的程序的名称 setPrintRange(QPrinter.PrintRange range) # 设置打印范围选项 setPrinterName(const QString &name) # 设置打印机名称# 如果名称为空,则输出格式将设置为PdfFormat。# 如果名称不是有效的打印机,则不会进行更改。# 如果名称是有效的打印机,则输出格式将设置为NativeFormat setPrinterSelectionOption(const QString &option) # 设置打印机使用选项来选择打印机 setMargins(const QPagedPaintDevice.Margins &m)
QPrintPreviewWidget
- 描述
- QPrintPreviewWidget类提供了一个小部件,用于预览打印机输出的页面布局
- QPrintPreviewDialog在内部使用QPrintPreviewWidget,QPrintPreviewWidget的目的是使预览嵌入到其他小部件中成为可能。
- 它还使得围绕它构建一个不同于QPrintPreviewDialog提供的默认用户界面的用户界面成为可能
- 继承自:QWidget
- 枚举
# 描述预览小部件的视图模式 QPrintPreviewWidget.ViewModeQPrintPreviewWidget.SinglePageView # 0 查看预览中的单个页面的模式QPrintPreviewWidget.FacingPagesView # 1 一种模式,在这种模式下,预览中的面向页被查看QPrintPreviewWidget.AllPagesView # 2 查看模式,其中查看预览中的所有页面# 描述预览小部件的缩放模式 QPrintPreviewWidget.ZoomModeQPrintPreviewWidget.CustomZoom # 0 缩放设置为自定义缩放值QPrintPreviewWidget.FitToWidth # 1 此模式使当前页面适合于视图的宽度QPrintPreviewWidget.FitInView # 2 此模式适合视图内的当前页面 - 常用API
# 构造函数 # 构造一个QPrintPreviewWidget对象 QPrintPreviewWidget() # 构造一个QPrintPreviewWidget对象,指定父控件的同时设置窗口标志 QPrintPreviewWidget(QWidget *parent = nullptr, Qt.WindowFlags flags = Qt.WindowFlags()) # 构造一个基于打印机的QPrintPreviewWidget对象,指定父控件的同时设置窗口标志 QPrintPreviewWidget(QPrinter *printer, QWidget *parent = nullptr, Qt.WindowFlags flags = Qt.WindowFlags())currentPage() # 返回预览中当前查看的页面 orientation() # 返回预览的当前方向 pageCount() # 返回预览中的页数 viewMode() # 返回当前视图模式。默认的视图模式是SinglePageView zoomFactor() # 返回视图的缩放系数 zoomMode() # 返回当前缩放模式setVisible(bool visible) print() # 将预览打印到与预览相关联的打印机 updatePreview() # 更新预览,这会导致paintrerequested()信号被发出 zoomIn(qreal factor = 1.1) # 按比例放大当前视图。factor的默认值是1.1 zoomOut(qreal factor = 1.1) # 按比例缩小当前视图。factor的默认值是1.1setViewMode(QPrintPreviewWidget.ViewMode mode) # 根据索引设置视图模式。默认的视图模式是SinglePageView setAllPagesViewMode() # 设置视图模式为AllPagesView,与调用 setViewMode(QPrintPreviewWidget.AllPagesView)相同 setFacingPagesViewMode() # 设置视图模式为FacingPagesView,与调用 setViewMode(QPrintPreviewWidget.FacingPagesView)相同 setSinglePageViewMode() # 设置视图模式为SinglePageView,与调用 setViewMode(QPrintPreviewWidget.SinglePageView)相同setCurrentPage(int page) # 在预览中设置当前页面。这将导致视图跳转到页面的开头setOrientation(QPrinter.Orientation orientation) # 根据索引设置当前方向 setLandscapeOrientation() # 设置当前方向为Landscape,与调用setOrientation(QPrinter.Landscape)相同 setPortraitOrientation() # 设置当前方向为Portrait,与调用 setOrientation(QPrinter.Portrait)相同setZoomFactor(qreal factor) # 设置视图的缩放系数setZoomMode(QPrintPreviewWidget.ZoomMode zoomMode) # 根据索引设置缩放模式。默认的缩放模式是FitInView fitInView() # 设置缩放模式为FitInView,与调用setZoomMode(QPrintPreviewWidget.FitInView)相同 fitToWidth() # 设置缩放模式为FitToWidth,与调用setZoomMode(QPrintPreviewWidget.FitToWidth)相同 - 可用信号
paintRequested(QPrinter *printer) # 当预览小部件需要生成一组预览页面时,就会发出这个信号,Printer是与这个预览小部件关联的打印机 previewChanged() # 每当预览小部件改变了某些内部状态(比如方向)时,就会发出这个信号
QPrintPreviewDialog
- 描述
- 用于预览和配置打印机输出的页面布局的对话框
- 可以用现有的QPrinter对象构造一个QPrintPreviewDialog
- 也可以让QPrintPreviewDialog为您创建一个QPrintPreviewDialog,它将是系统默认的打印机
- 将paintrerequested()信号连接到插槽。当对话框需要生成一组预览页面时,paintrerequested()信号将被发出
- 继承自:QDialog
- 常用API
# 构造函数 QPrintPreviewDialog() # 创建一个内部QPrinter对象,该对象将使用系统默认打印机 QPrintPreviewDialog(QWidget *parent = nullptr, Qt.WindowFlags flags = Qt.WindowFlags()) # 构造一个基于指定打印机的QPrintPreviewDialog对象,并以parent作为父部件 QPrintPreviewDialog(QPrinter *printer, QWidget *parent = nullptr, Qt.WindowFlags flags = Qt.WindowFlags())done(int result) # 关闭对话框并将其结果代码设置为result# 重写 QDialog.done(int r)# 如果使用exec()显示此对话框,done()也会导致本地事件循环结束,并且exec()返回result open(QObject *receiver, const char *member) # 打开对话框并将其完成的(int)信号连接到由接收器和成员指定的插槽 printer() # 返回与QPrintPreviewDialog关联的QPrinter对象setVisible(bool visible) # 是否可见 - 可用信号
paintRequested(QPrinter *printer) # 当生成一组预览页面时,就会发出这个信号 # 所提供的打印机实例是绘制设备,您应该在其上绘制每个页面的内容,使用QPrinter实例的方式与直接打印时的方式相同
QPrintEngine
- 描述
- 用于预览和配置打印机输出的页面布局的对话框
- QPrintEngine类定义了一个接口,用于QPrinter如何与给定的打印子系统交互
- 在创建自己的打印引擎时,常见的情况是同时从QPaintEngine和QPrintEngine派生
- 打印引擎的各种属性由property()给出,并由setProperty()设置。
- 继承自:simplewrapper
- 枚举
- QPrintEngine.PrintEnginePropertyKey
- 用于打印引擎和QPrinter之间的属性通信。给定的打印引擎可能支持也可能不支持某个属性
QPrintEngine.PrintEnginePropertyKey# QPrintEngine.PPK_CollateCopies # 0 一个布尔值,指示是否应该对打印输出进行排序# QPrintEngine.PPK_ColorMode # 1 指Qprinter.ColorMode,可以是彩色的,也可以是单色的# QPrintEngine.PPK_Creator # 2 描述文档创建者的字符串# QPrintEngine.PPK_Duplex # 20 一个布尔值,指示是否应将打印纸的两面用于打印输出# QPrintEngine.PPK_DocumentName # 3 在假脱机程序中描述文档名称的字符串# QPrintEngine.PPK_FontEmbedding # 19 一个布尔值,指示文档字体的数据是否应该嵌入到发送到打印机的数据中# QPrintEngine.PPK_FullPage # 4 一个布尔值,描述打印机是否应该满页# QPrintEngine.PPK_Orientation # 6 指定Qprinter.Orientation值# QPrintEngine.PPK_OutputFileName # 7 以字符串形式输出文件名。空文件名表示打印机不应该打印到某个文件# QPrintEngine.PPK_PageOrder # 8 指定Qprinter.PageOrder值# QPrintEngine.PPK_PageRect # 9 指定页面矩形的QRect# QPrintEngine.PPK_PaperRect # 11 指定纸张矩形的QRect# QPrintEngine.PPK_PaperSource # 12 指定Qprinter.PaperSource值# QPrintEngine.PPK_PaperSources # 21 指定多个QPrinter.PaperSource值# QPrintEngine.PPK_PaperName # 26 指定论文名称的字符串# QPrintEngine.PPK_PaperSize # PPK_PageSize 指定QPrinter.PaperSize值# QPrintEngine.PPK_PrinterName # 13 指定打印机名称的字符串# QPrintEngine.PPK_PrinterProgram # 14 指定用于打印的打印机程序名称的字符串# QPrintEngine.PPK_Resolution # 15 描述这台打印机每英寸网点数的整数# QPrintEngine.PPK_SelectionOption # 16# QPrintEngine.PPK_SupportedResolutions # 17 描述打印机支持的一组分辨率的整数QVariant列表# QPrintEngine.PPK_WindowsPageSize # 18 在Windows上指定DM_PAPER条目的整数# QPrintEngine.PPK_CustomPaperSize # 22 在QPrinter.Point单位中指定自定义纸张大小的QSizeF# QPrintEngine.PPK_PageMargins # 23 一个QList<QVariant>,包含QPrinter.Point单元中的左、上、右和下边距值# QPrintEngine.PPK_CopyCount # 24 指定要打印的副本数量的整数# QPrintEngine.PPK_SupportsMultipleCopies # 25 一个布尔值,指示打印机是否支持在一个作业中打印多个副本# QPrintEngine.PPK_QPageSize # 27 使用QPageSize对象设置页面大小# QPrintEngine.PPK_QPageMargins # 28 使用QMarginsF和QPageLayout.Unit的QPair设置页边距# QPrintEngine.PPK_QPageLayout # 29 使用QPageLayout对象设置页面布局# QPrintEngine.PPK_CustomBase # 0xff00 扩展的基础 - 常用API
QPrintEngine() # 构造函数 abort() # 指示打印引擎中止打印过程。如果成功返回true;否则返回false printerState() # 返回打印引擎正在使用的打印机的当前状态 newPage() # 指示打印引擎开始一个新页面。如果打印机能够创建新页面,则返回true;否则返回false metric(QPaintDevice.PaintDeviceMetric id) # 返回给定id的度量 property(QPrintEngine.PrintEnginePropertyKey key) # 返回由键指定的打印引擎属性 setProperty(QPrintEngine.PrintEnginePropertyKey key, const QVariant &value) # 将键指定的打印引擎属性设置为给定值
QPrinterInfo
- 描述
- 提供对现有打印机信息的访问
- 使用静态函数生成QPrinterInfo对象列表。
- 列表中的每个QPrinterInfo对象表示一台打印机,可以查询名称、支持的纸张大小以及它是否是默认打印机
- 继承自:simplewrapper
- 常用API
QPrinterInfo() # 构造一个空的QPrinterInfo对象 QPrinterInfo(const QPrinter &printer) # 从printer构造一个QPrinterInfo对象 QPrinterInfo(const QPrinterInfo &other) # 构造other的副本QPrinterInfo.operator=(const QPrinterInfo &other) # 设置QPrinterInfo对象等于other availablePrinterNames() # 返回此系统上所有可用打印机名称的列表# 建议使用此方法而不是availablePrinters(),因为它在大多数系统上会更快。# 请注意,如果在本地系统或远程打印服务器上进行了更改,该列表可能会过时# 只在需要时实例化所需的QPrinterInfo实例,并在调用之前始终检查有效性 availablePrinters() # 返回系统中所有可用打印机的QPrinterInfo对象列表# 不建议使用此方法,因为创建每个打印机实例可能需要很长时间,特别是在存在远程联网打印机的情况下# 并且如果在本地系统或远程打印服务器上进行更改,保留的实例可能会过时 defaultColorMode() # 返回此打印机的默认颜色模式 defaultDuplexMode() # 返回此打印机的默认双工模式 defaultPageSize() # 返回此打印机的当前默认页面大小 defaultPrinter() # 返回系统上的默认打印机# 在使用返回值之前,应该使用isNull()检查返回值,以防没有默认打印机。 defaultPrinterName() # 返回当前默认打印机名称 description() # 返回打印机的可读描述 isDefault() # 返回此打印机当前是否为默认打印机 isNull() # 返回QPrinterInfo对象是否包含打印机定义。# 例如,当系统上没有打印机时,调用defaultPrinter()可能会产生一个空的QPrinterInfo对象 isRemote() # 返回此打印机是否为远程网络打印机 location() # 返回打印机的可读位置 makeAndModel () # 返回可读打印机的品牌和型号 maximumPhysicalPageSize () # 返回此打印机支持的最大物理页面大小 minimumPhysicalPageSize() # 返回此打印机支持的最小物理页面大小 printerInfo(const QString &printerName) # 返回打印机prinintername# 在使用返回值之前应该使用isNull()进行检查,以防指定的打印机不存在 printerName() # 返回打印机的名称 state() # 返回该打印机的当前状态 supportedColorModes() # 返回此打印机支持的颜色模式 supportedDuplexModes() # 返返回此打印机支持的双工模式列表 supportedPageSizes() # 返回此打印机支持的页面大小列表 supportedResolutions() # 返回此打印机支持的分辨率列表 supportsCustomPageSizes() # 返回此打印机是否支持自定义页面大小
相关文章:
113.PyQt5_QtPrintSupport_打印操作
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…...
在vue中使用bing map 的小demo
1.注意事项(关于经纬度) 如果不转换成WGS84 标准的经纬度 bing map会报错 如果要在 Bing Maps 中使用中国地区的经纬度,需要先将其转换为 WGS84 标准的经纬度。你可以使用第三方的坐标转换服务,或者使用相关的 JavaScript 库进行…...
基于uni-app的埋点sdk设计
一、统计app激活状态 在App.vue 中 利用onShow生命周期验证 或者操作 onShow: function () { uni.showToast({ title: onShow }) }, 二、页面级别的统计 (进入页面、停留时长、手机系统信息、网络状态、页面路径、标题) 需要收集的数据 { &quo…...
Python学习笔记(三)
一、使用朴素贝叶斯制作鸢尾花数据模型 from sklearn.preprocessing import StandardScaler from sklearn.naive_bayes import MultinomialNB from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.feature_extraction…...
Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库&…...
【学习笔记】R语言入门与数据分析1
数据分析 数据分析的过程: 数据采集 数据存储 数据分析 数据挖掘 数据可视化 进行决策 数据挖掘 数据量大 复杂度高,容忍一定的误差限 追求相关性而非因果性 数据可视化 直观明了 R语言介绍 R是免费的(开源软件、扩展性好)…...
MyBatis-Spring整合
引入Spring之前需要了解mybatis-spring包中的一些重要类; http://www.mybatis.org/spring/zh/index.html 什么是 MyBatis-Spring? MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 知识基础 在开始使用 MyBatis-Spring 之前&#x…...
资深亚马逊运营实战技巧:跨境电商6大选品法
1、工具选品法 比如店雷达, 通过大数据分析工具选出来利基产品或者通过工具选出来利基的市场,然后再通过分析市场来得到产品。 以女装为例,通过大数据分析,全方位对市场需求、款式、质量等进行多维度判断,其中SKU销量…...
bugku-web-需要管理员
页面源码 <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <title>404 Not Found</title> </head> <body> <div idmain><i> <h2>Something error:</h2…...
STM32之FreeRTOS移植
1.FreeRTOS的移植过程是将系统需要的文件和代码进行移植和裁剪,其移植的主要过程为: (1)官网上下载FreeRTOS源码:https://www.freertos.org/ (2)移植文件夹,在portable文件夹中只需…...
SpringBoot实用开发(十四)-- 消息(Message)的简单认识
目录 1.消息的概念 2.Java处理消息的标准规范 3.JMS 4.AMQP 5.MQTT 1.消息的概念 广义角度来说,消息其实就是信息,但是和信息又有所不同。信息通常被定义为一组数据,而消息除了具有数据的特征之外,还有...
【Spring Boot 源码学习】SpringApplication 的 run 方法核心流程介绍
《Spring Boot 源码学习系列》 SpringApplication 的 run 方法核心流程介绍 一、引言二、往期内容三、主要内容3.1 run 方法源码初识3.2 引导上下文 BootstrapContext3.3 系统属性【java.awt.headless】3.4 早期启动阶段3.5 准备和配置应用环境3.6 打印 Banner 信息3.7 新建应用…...
如何保证消息不丢失?——使用rabbitmq的死信队列!
如何保证消息不丢失?——使用rabbitmq的死信队列! 1、什么是死信 在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式,这些场景包括: 消息被拒绝访问&am…...
html、css、京东移动端静态页面,资源免费分享,可作为参考,提供InsCode在线运行演示
CSDN将我上传的免费资源私自变成VIP专享资源,且作为作者的我不可修改为免费资源,不可删除,寻找客服无果,很愤怒,(我发布免费资源就是希望大家能免费一起用、一起学习),接下来继续寻找…...
头歌-机器学习 第13次实验 特征工程——共享单车之租赁需求预估
第1关:数据探索与可视化 任务描述 本关任务:编写python代码,完成一天中不同时间段的平均租赁数量的可视化功能。 相关知识 为了完成本关任务,你需要掌握: 读取数据数据探索与可视化 读取数据 数据保存在./step1/…...
Unity 2D让相机跟随角色移动
相机跟随移动 最简单的方式通过插件Cinemachine 在窗口/包管理器选择全部找到Cinemachine,导入。然后在游戏对象/Cinemachine创建2D Camera。此时层级中创建一个2D相机。选中人物拖入检查器Follow。此时相机跟随人物移动。 修改相机视口距离 在检查器中Lens下调正…...
【面试题】s += 1 和 s = s + 1的区别
文章目录 1.问题2.发现过程3.解析 1.问题 以下两个程序真的完全等同吗? short s 0; s 1; short s 0; s s 1; 2.发现过程 初看s 1 和 s s 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书…...
ARM的学习
点亮流水灯 .text .global _start _start: 使能GPIOE的外设时钟 RCC_MP_AHB4ENSETR 0x50000a28 [4]->1LDR R0,0X50000A28 指定基地址LDR R1,[R0] 将寄存器数据读取出来保存到R1中ORR R1,R1,#(0x3<<4) [4]设置为1ORR R1,R1,#(0x3<<5) [5]设置为1STR …...
Restful API接口规范(以Django为例)
Restful API接口规范(以Django为例) Restful API的接口架构风格中制定了一些规范,极大的简化了前后端对接的时间,以及增加了开发效率 安全性保证–使用https路径中带 api标识路径中带版本号数据即资源,通常使用名词操作请求方式决定操作资源…...
AI助力,程序员压力倍增?
讲动人的故事,写懂人的代码 你知道程序员现在在AI辅助编程时最头疼的事情是什么吗?就是怎么在改代码的时候保住小命。 大家都听过程序员因为工作太累导致过劳湿的事情。 无论是写新功能、修bug,还是更改系统配置,都得改代码。 现在有了AI的帮助,本应该轻松很多,为什么…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
