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 11 Python
Python读取网页内容的方法
Jul 30 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
pyhton列表转换为数组的实例
Apr 04 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
python把ipynb文件转换成pdf文件过程详解
Jul 09 Python
Django Rest framework权限的详细用法
Jul 25 Python
在django admin中添加自定义视图的例子
Jul 26 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 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对象类型判断
2008/08/27 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
python中字符串前面加r的作用
2015/06/04 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
详解Python中dict与set的使用
2015/08/10 Python
python装饰器实例大详解
2017/10/25 Python
python批量爬取下载抖音视频
2019/06/17 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
学生档案自我鉴定
2013/10/07 职场文书
表彰先进的通报
2014/01/31 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
体育教师个人总结
2015/02/09 职场文书
岁月神偷观后感
2015/06/11 职场文书
导游词之湖北武当山
2019/09/23 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库