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_())
QT把widget转换成图片后打印的更多相关文章
- QT:给Widget设置背景图片——设置Widget的调色板,调色板使用图片和背景色
QT:给Widget设置背景图片 1 /*2 * set background image3 */4 QPixmap bgImages(":/images/bg.png");5 Q ...
- 使用的是html5的canvas将文字转换成图片
当前功能的运用场景是:用户需要传文件给他人,在用户选择文件之后需要显示一个文件图标和所选文件的名称. 当前代码部分是摘自网上,但是已经忘记在什么地方获取的,如有侵权联系小弟后自当删除. 注意:必须在h ...
- 批量将网页转换成图片或PDF文档技巧分享
工作中我们有时要将一些批量的网页转换成图片或者PDF文档格式,尽管多数浏览器具有滚动截屏或者打印输出PDF文档功能.可是假设有几十上百张网页须要处理,那也是要人命的.所以我一直想找一款可以批量处理该工 ...
- Gson字符串编码,字符串转换成图片保存,二进制转换成图片保存
import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import ...
- Android View转换成图片保存
package zhangphil.viewtoimage; import java.io.File;import java.io.FileOutputStream; import android.o ...
- 100怎么变成100.00 || undefined在数字环境下是:NaN || null在数字环境下是0 || 数组的toString()方法把每个元素变成字符串,拼在一起以逗号隔开 || 空数组转换成字符串后是什么?
100怎么变成100.00?
- C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)
原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常 ...
- IE JavaScript字符串转换成Date后出现NaN错误
参考的博文:http://blog.csdn.net/zhu7478848/article/details/53388582 在IE浏览器下, JavaScript字符串转换成Date后会出现NaN错 ...
- C#技术分享【PDF转换成图片——11种方案】
1.[iTextSharp.dll],C# 开源PDF处理工具,可以任意操作PDF,并可以提取PDF中的文字和图片,但不能直接将PDF转换成图片. DLL和源码 下载地址:http://downloa ...
随机推荐
- c语言中使用宏,需要注意的的几点
使用#define来定义一些宏,进行一些简洁的替换甚至一些带参数的宏,在linux c代码中很常见,说明它很好.很有用, 但是它也有一些复杂的规矩和陷阱需要注意,下面我记录一些,仅供参考. 1.当使用 ...
- 【Android】7.8 MyDemos项目的结构和主界面相关代码
分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 上一讲已经说过,系统升级为Win10后,重新创建了一个新的项目:MyDemos,并把前7章合并到了这个项目中,这次 ...
- Chisel Tutorial(七)——模块
下面内容根据2015-7-10版的Chisel 2.2 Tutorial整理 Chisel中的模块与Verilog HDL中模块的概念十分相似,都是用层次结构描写叙述电路.Chisel中的module ...
- Java多线程和并发基础
第一:Java多线程面试问题 1:进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运 ...
- kafka之partition分区及副本replica升级
修改kafka的partition分区 bin/kafka-topics.sh --zookeeper datacollect-2:2181 --alter --partitions 3 --topi ...
- 第一个struts程序的配置过程
然后输入project-name,比如说“test",点finish,配置web.xml,这里的org.apache.struts.action.ActionServlet就在struts- ...
- 在eclipse中执行sql
只要你配置好了你的database(在Data Source Explorer中,可以通过window->show view打开) 写好你的sql script,然后配置好profile 右键, ...
- 使用 FreeRTOS 时注意事项总结(基础篇教程完结)
以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的初始化流程推荐的初始化流程如下,本教程配套的所有例子都是采用的这种形式,当然,不限制必须 ...
- C语言 · 最大子阵
历届试题 最大子阵 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和 ...
- 用户数据验证的正确姿势之assert
用户数据验证灰常重要, 不用多说了, 但是实现方法(准确的说是表现形式)有很多人, 如何优雅的完成一个后端验证过滤器是一个值得考量的问题, 我尝试过许多方法, 比如validator.js模块, ex ...