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

news/2024/7/3 7:46:44

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_())

运行程序,显示效果如下

2020228161433650.jpg

打印功能

2020228161436245.jpg

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


http://www.niftyadmin.cn/n/3873763.html

相关文章

电动机的转速为确定,应选用分辨率为多少的编码器呢?

1、电动机的转速为3000r/min,应选用分辨率为多少的编码器呢?

js常用函数_工作中常用的 JS 工具函数

如果文章和笔记能带您一丝帮助或者启发,请不要吝啬你的赞和收藏,你的肯定是我前进的最大动力?附笔记链接,阅读往期更多优质文章可移步查看,喜欢的可以给我点赞鼓励哦:https://github.com/Wscats/CV/issues/27为元素添…

c++中 explicit的作用

C提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 …

金属箔式应变片性能—单臂电桥

1、电桥基础知识 2、调零 1)零点的产生(摘自 桥式传感器的调零分析 [会议论文] 孙徐仁- 20012001全国压力计量测试技术年会) 2)放大器调零 3)电桥平衡调节 4、实验接线图 5、应用(拓展部分&#xff09…

c事件和委托的区别_unity3d 笔记32事件

事件event事件是一个特殊的委托或者理解为事件内部是由委托实现的事件只能通过-,添加方法(事件处理),不能赋值事件只能在类中触发,不能由其他的类触发,其他类只能用-,添加删除方法来控制事件的处理,触发事件…

windows中python环境搭建

Python的安装: 1.进入Python官方网站下载安装包 点击导航栏的 Downloads 会自动识别你的windows系统 你会看到 Python3.6.2 和 Python2.7.13 (32位系统)的安装包 注:Python3以后版本不再向Python2进行兼容,所有…

西门子200PLC不工作了,所有灯都灭了

1、实验箱外置交流保险断,换保险,再测量得知,应该是电源部分坏了,拆机吧; 2、上图 3、观察电源板,电阻(编号R814 ,贴片R39,0.75w)烟花了,初步判断可能是学生把传感器电源部分短路了引起的。 安森美半导体(ON Semiconductor) 器件: v806 超快恢复二极管参数: 603…

【SDUT】2054数据结构实验之链表九:双向链表

问题描述: 学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链。但单链表有一个弱点——不能回指。比如在链表中有两个节点A,B,他们的关系是B是A的…