【PyQt5-Qt Designer】读取txt文件在打印
- from PyQt5.QtGui import QFont,QTextDocument,QTextCursor
- from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QSizePolicy, QAction,QDialog
- from PyQt5.QtPrintSupport import QPrinter, QPrintDialog,QPrintPreviewDialog
- import sys
- ################################################
- #######打印文本---海子的诗
- ################################################
- the_text = '''
- 从明天起,做一个幸福的人
- 喂马、劈柴,周游世界
- 从明天起,关心粮食和蔬菜
- 我有一所房子,面朝大海,春暖花开
- 从明天起,和每一个亲人通信
- 告诉他们我的幸福
- 那幸福的闪电告诉我的
- 我将告诉每一个人
- 给每一条河每一座山取一个温暖的名字
- 陌生人,我也为你祝福
- 愿你有一个灿烂的前程
- 愿你有情人终成眷属
- 愿你在尘世获得幸福
- 我只愿面朝大海,春暖花开
- '''
- class MainWindow(QMainWindow):
- def __init__(self, parent=None):
- super(MainWindow, self).__init__(parent)
- self.setWindowTitle(self.tr("打印功能"))
- # 创建文本框
- self.label = QLabel()
- self.label.setFont(QFont("宋体",12,QFont.Bold))
- self.label.setText(the_text)
- self.setCentralWidget(self.label)
- # 创建菜单栏
- self.createMenus()
- def createMenus(self):
- # 创建动作一
- self.printAction1 = QAction(self.tr("打印无预留"), self)
- self.printAction1.triggered.connect(self.on_printAction1_triggered)
- # 创建动作二
- self.printAction2 = QAction(self.tr("打印有预留"), self)
- self.printAction2.triggered.connect(self.on_printAction2_triggered)
- # 创建动作三
- self.printAction3 = QAction(self.tr("直接打印"), self)
- self.printAction3.triggered.connect(self.on_printAction3_triggered)
- # 创建动作四
- self.printAction4 = QAction(self.tr("打印到PDF"), self)
- self.printAction4.triggered.connect(self.on_printAction4_triggered)
- # 创建菜单,添加动作
- self.printMenu = self.menuBar().addMenu(self.tr("打印"))
- self.printMenu.addAction(self.printAction1)
- self.printMenu.addAction(self.printAction2)
- self.printMenu.addAction(self.printAction3)
- self.printMenu.addAction(self.printAction4)
- # 动作一:打印,无预览
- def on_printAction1_triggered(self):
- printer = QPrinter()
- printDialog = QPrintDialog(printer, self)
- if printDialog.exec_() == QDialog.Accepted:
- self.handlePaintRequest(printer)
- # 动作二:打印,有预览
- def on_printAction2_triggered(self):
- dialog = QPrintPreviewDialog()
- dialog.paintRequested.connect(self.handlePaintRequest)
- dialog.exec_()
- # 动作三:直接打印
- def on_printAction3_triggered(self):
- printer = QPrinter()
- self.handlePaintRequest(printer)
- # 动作四:打印到pdf
- def on_printAction4_triggered(self):
- printer = QPrinter()
- printer.setOutputFormat(QPrinter.PdfFormat)
- printer.setOutputFileName("D:/pdf打印测试.pdf")
- self.handlePaintRequest(printer)
- ## 打印函数
- def handlePaintRequest(self, printer):
- document = QTextDocument()
- cursor = QTextCursor(document)
- cursor.insertText(self.label.text())
- document.print(printer)
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- main = MainWindow()
- main.show()
- sys.exit(app.exec_())
【PyQt5-Qt Designer】读取txt文件在打印的更多相关文章
- QT 读取txt文件的几种方法
废话不说直接上代码 1. QString displayString; QFile file("/home/alvin/text.txt"); if(!file.open(QIOD ...
- Qt读取TXT文件时,GBK与UTF-8编码判断
读取txt文件时,很多时候无法获取文件的编码格式.如果直接进行使用,则有可能出现乱码.需要在使用前将其转为Unicode(Qt的默认编码格式). 虽然实际的编码格式种类非常多,但平常主要使用的有GBK ...
- web端自动化——Python读取txt文件、csv文件、xml文件
1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...
- Javascript写入txt和读取txt文件的方法
文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...
- 关于读取txt文件中文乱码问题
在处理文件的过程中,读取txt文件出现中文乱码.这种情况是由于编码字符不一致导致. public static string ReadFile(string path, string fileName ...
- JAVA读取TXT文件、新建TXT文件、写入TXT文件
1.创建TXT文件 按照正常的逻辑写就好 先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好 2.读取TXT文件 ...
- 用C#读取txt文件的方法
1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...
- C#生成PDF文档,读取TXT文件内容
using System.IO;using iTextSharp.text;using iTextSharp.text.pdf; //需要在项目里引用ICSharpCode.SharpZipLib.d ...
- selenium读取txt文件的几种方式
1.用java读取txt文件 public static String readFJ(String path) { path = "D:/workspace/hetong.txt" ...
随机推荐
- SimpleDateFormat 取当前周的周一和周日的日期,当前月第一个和最后一天的日期
/** * 类说明 :以及获取当前周的周一和周日的日期,当前月第一个和最后一天的日期 * 日期格式化:格式参数 G 年代标志符 y 年 M 月 d 日 h 时 在上午或下午 (1~12) ...
- com.baidu.mapapi.CoordType
2.2.2升级到3.0.1百度报错了, 一:请检查.jar,.so是否是最新的 二:clear
- centos6.4安装GCC
1. Last login: Mon Aug 4 11:46:15 2014 from 10.3.7.128 [jifeng@jifeng04 ~]$ ls hadoop jdk1.7.0_45 ...
- React Native(十三)——ios键盘挡住textInput
渐入佳境 用React Native重构的项目也快接近尾声,剩下的就是适配ios的功能了.慢慢地也从中琢磨出了一点门道,于是就遇见了键盘遮挡textInput问题斑斑: 正常页面: android点击 ...
- SqlServer 连接远程服务器数据库 实现跨服务器联合查询
第一种: exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'IT ...
- C数组&结构体&联合体快速初始化
背景 C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序. C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元 ...
- 【面试题】Java EE面试题
第一部分:Servlet/JSP快速入门 1. 请列举至少6种javaEE技术,并简述其作用. 解析: javaEE是一系列的技术,主要包扩13种.对于开发人员来说,了解几种主要的技术是非常 ...
- centos 安装 Vagrant
使用的软件: 1. CentOS: CentOS release 6.4 (Final) 2. Vagrant: vagrant_1.2.2_i686.rpm 3. Virtualbox: Virt ...
- Qt+imx6编写的楼宇对讲管理平台
第一个初步版本. 1:楼宇对讲模块.住户报警模块.门禁控制模块.系统设置模块. 2:实时对讲信息卡片式展示,通话记录表格展示. 3:设备面板展示,实时显示上下线报警等信息. 4:设备查询.记录查询.运 ...
- C C++ 文件输入与输出
C语言: 一 打开关闭文件 1 fopen函数 用于打开文件 FILE *fopen(char *filename, *type); fopen("c:\\ccdos\\clib" ...