python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例


Posted in Python onFebruary 28, 2020

PyQt5打印控件QPrinter简介

打印图像是图像处理软件中的一个常用功能,打印图像实际上是在QPaintDevice中画图,与平时在QWidget。QPixmap和QImage中画图是一样的,都是创建一个QPainter对象进行画图的,只是打印使用的是QPrinter,它的本质上也是一个QPainterDevice(绘图设备)

QPrinter的使用实例

import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QLabel,QSizePolicy,QAction
from PyQt5.QtPrintSupport import QPrintDialog,QPrinter
from PyQt5.QtGui import QImage,QIcon,QPixmap

class MainWindow(QMainWindow):
  def __init__(self,parent=None):
    super(MainWindow, self).__init__(parent)

    #设置标题
    self.setWindowTitle('打印图片')

    #创建标签,设置标签的大小规则以及控件的位置居中
    self.imageLabel=QLabel()
    self.imageLabel.setSizePolicy(QSizePolicy.Ignored,QSizePolicy.Ignored)
    self.setCentralWidget(self.imageLabel)

    #实例化Qimage类
    self.image = QImage()
    #自定义的多个函数,实现的功能不一
    self.createActions()
    self.createMenus()
    self.createToolBars()

    if self.image.load('images\screen.png'):
      self.imageLabel.setPixmap(QPixmap.fromImage(self.image))
      self.resize(self.image.width(),self.image.height())

  def createActions(self):
    #加载图标,添加快捷方式,添加提示信息,绑定槽函数
    self.PrintAction=QAction(QIcon('images\screen.png'),self.tr('打印'),self)
    self.PrintAction.setShortcut('Ctrl+P')
    self.PrintAction.setStatusTip(self.tr('打印'))
    self.PrintAction.triggered.connect(self.slotPrint)
  def createMenus(self):
    #实例化菜单栏,并添加一个父菜单,以及把PrintAction添加到父菜单下
    PrintMenu=self.menuBar().addMenu(self.tr('打印'))
    PrintMenu.addAction(self.PrintAction)

  def createToolBars(self):
    #在工具栏区域内添加控件printACtion
    fileToolBar=self.addToolBar('Print')
    fileToolBar.addAction(self.PrintAction)

  def slotPrint(self):
    #实例化打印图像对象
    printer=QPrinter()
    #打印窗口弹出
    printDialog=QPrintDialog(printer,self)
    if printDialog.exec_():

      painter=QPainter(printer)
      #实例化视图窗口
      rect=painter.viewport()
      #获取图片的尺寸
      size=self.image.size()

      size.scale(rect.size(),Qt.KeepAspectRatio)
      #设置视图窗口的属性
      painter.setViewport(rect.x(),rect.y(),size.width(),size.height())

      #设置窗口的大小为图片的尺寸,并在窗口内绘制图片
      painter.setWindow(self.image.rect)
      painter.drawImage(0,0,self.image)
if __name__ == '__main__':
  app=QApplication(sys.argv)
  main=MainWindow()
  main.show()
  sys.exit(app.exec_())

运行程序,显示效果如下

python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例

打印功能

python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例

本文详细讲解了PyQt5打印控件QPrinter详细使用方法与实例,更多关于PyQt5控件知识请查看下面的相关链接

Python 相关文章推荐
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
利用python批量给云主机配置安全组的方法教程
Jun 21 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
python针对excel的操作技巧
Mar 13 Python
用Python中的turtle模块画图两只小羊方法
Apr 09 Python
python实现小球弹跳效果
May 10 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
Python多线程多进程实例对比解析
Mar 12 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
浅析Python中的随机采样和概率分布
Dec 06 Python
使用sklearn的cross_val_score进行交叉验证实例
Feb 28 #Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 #Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 #Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 #Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
Feb 28 #Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 #Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 #Python
You might like
mysql 性能的检查和优化方法
2009/06/21 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php中define用法实例
2015/07/30 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
python文件和目录操作函数小结
2014/07/11 Python
python中split方法用法分析
2015/04/17 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
django settings.py 配置文件及介绍
2019/07/15 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
五年级数学教学反思
2014/02/11 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
2015年幼师工作总结
2015/04/28 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
贷款担保书范本
2015/09/22 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
Android中的Launch Mode详情
2022/06/05 Java/Android