QT把widget转换成图片后打印

from PyQt5.QtWidgets import (QApplication, QWidget, QTableWidget,QPushButton,
                             QVBoxLayout,
                            QTableWidgetItem)
from PyQt5.QtGui import  QPixmap, QPainter, QImage, QTextDocument
from PyQt5.QtPrintSupport import  QPrinter, QPrintDialog, QPrintPreviewDialog
from PyQt5.QtCore import QRect, QPoint, QSize ,  Qt

def on_picButton_clicked():

    printer =QPrinter(QPrinter.HighResolution)
#/* 打印预览 */
    preview =QPrintPreviewDialog(printer,widget )   

    """
     * QPrintPreviewDialog类提供了一个打印预览对话框,里面功能比较全,
     * paintRequested(QPrinter *printer)是系统提供的,
     * 当preview.exec()执行时该信号被触发,
     * plotPic(QPrinter *printer)是用户自定义的槽函数,图像的绘制就在这个函数里。
    """
    preview.paintRequested.connect(plotPic)

    preview.exec(); #/* 等待预览界面退出 */

def  plotPic(printer):

    painter =QPainter(printer);
    image = QPixmap()

    image=widget.grab(QRect( QPoint( 0, 0 ),
                                            QSize( widget.size().width(),
                                                        widget.size().height()
                                                    )
                                        )
                                )# /* 绘制窗口至画布 */
   #QRect
    rect = painter.viewport();
   #QSize
    size = image.size();
    size.scale(rect.size(), Qt.KeepAspectRatio)#     //此处保证图片显示完整
    painter.setViewport(rect.x(), rect.y(),size.width(), size.height());
    painter.setWindow(image.rect());

    painter.drawPixmap(0,0,image); #/* 数据显示至预览界面 */

import sys

app = QApplication(sys.argv)
tablewidget = QTableWidget()
## 设置列数
tablewidget.setColumnCount(4)
tablewidget.horizontalHeader().setDefaultSectionSize(150)

## QStringList在PyQt5
header= ["name", "last modify time","type",  "size"]

tablewidget.setHorizontalHeaderLabels(header)
tablewidget.insertRow(0)
tablewidget.insertRow(0)

pItem1 =  QTableWidgetItem("aa" )
pItem2 =  QTableWidgetItem("bb" )
pItem3 =  QTableWidgetItem("cc" )
pItem4 =  QTableWidgetItem("dd" )
tablewidget.setItem( 0, 0, pItem1 )
tablewidget.setItem( 0, 1, pItem2 )
tablewidget.setItem( 0, 2, pItem3 )
tablewidget.setItem( 0, 3, pItem4 )

tablewidget.setMinimumSize(800, 600)

button = QPushButton(‘打印界面‘)
button.clicked.connect(on_picButton_clicked)

widget = QWidget()
layout = QVBoxLayout(widget)
layout.addWidget(button)
layout.addWidget(button_txt)
layout.addWidget(tablewidget)
widget.show()

sys.exit(app.exec_())
时间: 2024-11-05 17:24:17

QT把widget转换成图片后打印的相关文章

Android View转换成图片保存

package zhangphil.viewtoimage; import java.io.File; import java.io.FileOutputStream; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.view.View; import android.widget.Button; import android.widget.Tex

pdf文件内容如何转换成图片

在将pdf文件或者是word文档转换成为图片时,一般的方法都是讲如何使用截图的方式来把文档内容转换成图片,但是除此之外,还有什么方法可以把pdf以及office文档转换成图片吗? 如果只是将pdf文件转成图片,可以用在线工具把pdf文档的内容转换成图片的形式,这在一些专门的pdf在线转换应用中可以实现. 首先找到在线pdf转图片,并进入到首页.在首页中会有pdf转成图片的选项,直接选择该项,进入到转换的操作页面. 点选择文件,然后就可以在选择一个需要进行转换的pdf文档,选择的文件会添加到转换页

教你怎样把PDF文件转换成图片

将一些PDF文件内容转换成为图片,这在办公中经常会遇到,不管是什么类型的文档要转换成图片,用截图方式是不能很快完成的,尤其是PDF这种文档,有些页面就有很多,那PDF文件如何转换成JPG格式图片. 将PDF转换成图片,一般是以文档的页面为单位,每个页面内容转换成一张图片,而且需要使每张图片的尺寸相同.那么在转换一些页面较少的PDF文档时,可以把PDF文件通过在线转换应用进行转换. 通过在线pdf转换成图片需要转换的PDF文档进行上传,在线转换完成后,将转换好图片的压缩包下载下来就可以了. 转换一

小技巧—如何将pdf文件转换成图片

有时候将文档内容发送给别人查看时,如果不想文档被修改或者复制,可以吧文档转换成一张张的图片,这样就可以了.不同的文档有不同的方法,如果转换的文档是pdf文件该怎么操作呢? 如果文档内容较少,那么不用借助任何工具,直接通过在线转换,就能把pdf转为图片. 在线转换是通过一些网页应用,来对文档进行转换操作的.进入到在线转换工具后,选择对应的转换类型,然后把要转换文档进行上传,等处理完成后下载下来就可以了. 工具:PDF转换成图片在线http://app.xunjiepdf.com/pdf2jpg 通

批量将网页转换成图片或PDF文档技巧分享

工作中我们有时要将一些批量的网页转换成图片或者PDF文档格式,虽然多数浏览器具有滚动截屏或者打印输出PDF文档功能,但是如果有几十上百张网页需要处理,那也是要人命的.所以我一直想找一款能够批量处理该工作的软件,但基本都是收费的,即便是收费的功能也一般.终于,我找到了wkhtmltopdf这款免费开源软件,最贴合我的工作,由衷感谢软件的作者"Jakob Truelsen"和"Ashish Kulkarni"两位大神!我安装软件后,结合windows的批处理命令,顺利测

PDF转换成图片的小技巧,快快收藏

不论是学习还是工作,我们都会跟各种类型的文档打交道,时间久了,遇到的问题也会千奇百怪,比如:将PDF转换成图片的问题你遇到过吗?这个时候别慌,多学习一些技能,就能游刃有余.小编这里就有一个现成的PDF转换成图片的教程, 大家可以学习一下,以备不时之需. 1.前往在线PDF转换平台--pdf365.cn 2.点击"PDF转图片"图标,进入PDF文档上传页面,将需要转换的PDF文档添加到转换窗口中: 3.点击"开始转换"按钮,即可完成在线PDF转换成图片: 4.转换成功

PDF文件怎么转换成图片格式

随着PDF文件的广泛使用,我们在办公中,也会遇到PDF文件的处理.PDF文件格式稳定,无论对方使用的办公软件是WPS格式还是office格式,在接收过程中都不会发生变化.但是有时为了方便,需要把PDF文件转换成图片格式,那么,问题来了,PDF文件怎么转换成图片格式呢?下面一起来学习一下.分享工具:迅捷PDF转换器 下载链接:https://www.xunjiepdf.com/converter分享理由:转换质量高,功能丰富,是办公中必不可少的工具. 操作步骤:[步骤一]分享的工具可以到百度上面搜

Qt中将float转换成unsigned short类型

在用Qt开发应用程序时有时候需要将float类型转换为unsigned short类型的.如果进行强制类型转换,那么会出现精度损失的问题,使数据变得不正确.那么可以通过先将float类型的转换为QString类型的,QString sNum = QString::number(fNum);然后调用sNum.toUShort()函数就可以将float转换为unsigned short类型. 来自为知笔记(Wiz) Qt中将float转换成unsigned short类型,布布扣,bubuko.co

IE JavaScript字符串转换成Date后出现NaN错误

参考的博文:http://blog.csdn.net/zhu7478848/article/details/53388582 在IE浏览器下, JavaScript字符串转换成Date后会出现NaN错误,但是在其他的浏览器下,都没有问题. 因此,转变字符串的格式. var  date  = new Date("2016-10-11") 在IE下date是NaN,而其他浏览器正常. 字符串修改成 2016/10/11 var  date  = new Date("2016-10