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下的Mysql模块MySQLdb安装详解
Apr 09 Python
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
5款非常棒的Python工具
Jan 05 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
如何基于Python制作有道翻译小工具
Dec 16 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
使用django自带的user做外键的方法
Nov 30 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 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
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php eval函数一句话木马代码
2015/05/21 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
js null,undefined,字符串小结
2010/08/21 Javascript
JS高级笔记
2011/07/13 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
初步探究Python程序的执行原理
2015/04/11 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
python中time.ctime()实例用法
2021/02/03 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
区优秀教师事迹材料
2014/02/10 职场文书
法律顾问服务方案
2014/05/15 职场文书
农业开发项目建议书
2014/05/16 职场文书
党支部季度考核意见
2015/06/02 职场文书
校友会致辞
2015/07/30 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS