1. from PyQt5.QtGui import QFont,QTextDocument,QTextCursor
  2. from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QSizePolicy, QAction,QDialog
  3. from PyQt5.QtPrintSupport import QPrinter, QPrintDialog,QPrintPreviewDialog
  4. import sys
  5.  
  6. ################################################
  7. #######打印文本---海子的诗
  8. ################################################
  9. the_text = '''
  10. 从明天起,做一个幸福的人
  11. 喂马、劈柴,周游世界
  12. 从明天起,关心粮食和蔬菜
  13. 我有一所房子,面朝大海,春暖花开
  14. 从明天起,和每一个亲人通信
  15. 告诉他们我的幸福
  16. 那幸福的闪电告诉我的
  17. 我将告诉每一个人
  18. 给每一条河每一座山取一个温暖的名字
  19. 陌生人,我也为你祝福
  20. 愿你有一个灿烂的前程
  21. 愿你有情人终成眷属
  22. 愿你在尘世获得幸福
  23. 我只愿面朝大海,春暖花开
  24. '''
  25.  
  26. class MainWindow(QMainWindow):
  27. def __init__(self, parent=None):
  28. super(MainWindow, self).__init__(parent)
  29. self.setWindowTitle(self.tr("打印功能"))
  30.  
  31. # 创建文本框
  32. self.label = QLabel()
  33. self.label.setFont(QFont("宋体",12,QFont.Bold))
  34. self.label.setText(the_text)
  35. self.setCentralWidget(self.label)
  36.  
  37. # 创建菜单栏
  38. self.createMenus()
  39.  
  40. def createMenus(self):
  41. # 创建动作一
  42. self.printAction1 = QAction(self.tr("打印无预留"), self)
  43. self.printAction1.triggered.connect(self.on_printAction1_triggered)
  44.  
  45. # 创建动作二
  46. self.printAction2 = QAction(self.tr("打印有预留"), self)
  47. self.printAction2.triggered.connect(self.on_printAction2_triggered)
  48.  
  49. # 创建动作三
  50. self.printAction3 = QAction(self.tr("直接打印"), self)
  51. self.printAction3.triggered.connect(self.on_printAction3_triggered)
  52.  
  53. # 创建动作四
  54. self.printAction4 = QAction(self.tr("打印到PDF"), self)
  55. self.printAction4.triggered.connect(self.on_printAction4_triggered)
  56.  
  57. # 创建菜单,添加动作
  58. self.printMenu = self.menuBar().addMenu(self.tr("打印"))
  59. self.printMenu.addAction(self.printAction1)
  60. self.printMenu.addAction(self.printAction2)
  61. self.printMenu.addAction(self.printAction3)
  62. self.printMenu.addAction(self.printAction4)
  63.  
  64. # 动作一:打印,无预览
  65. def on_printAction1_triggered(self):
  66. printer = QPrinter()
  67. printDialog = QPrintDialog(printer, self)
  68. if printDialog.exec_() == QDialog.Accepted:
  69. self.handlePaintRequest(printer)
  70.  
  71. # 动作二:打印,有预览
  72. def on_printAction2_triggered(self):
  73. dialog = QPrintPreviewDialog()
  74. dialog.paintRequested.connect(self.handlePaintRequest)
  75. dialog.exec_()
  76.  
  77. # 动作三:直接打印
  78. def on_printAction3_triggered(self):
  79. printer = QPrinter()
  80. self.handlePaintRequest(printer)
  81.  
  82. # 动作四:打印到pdf
  83. def on_printAction4_triggered(self):
  84. printer = QPrinter()
  85. printer.setOutputFormat(QPrinter.PdfFormat)
  86. printer.setOutputFileName("D:/pdf打印测试.pdf")
  87. self.handlePaintRequest(printer)
  88.  
  89. ## 打印函数
  90. def handlePaintRequest(self, printer):
  91. document = QTextDocument()
  92. cursor = QTextCursor(document)
  93. cursor.insertText(self.label.text())
  94. document.print(printer)
  95.  
  96. if __name__ == "__main__":
  97. app = QApplication(sys.argv)
  98. main = MainWindow()
  99. main.show()
  100. sys.exit(app.exec_())

【PyQt5-Qt Designer】读取txt文件在打印的更多相关文章

  1. QT 读取txt文件的几种方法

    废话不说直接上代码 1. QString displayString; QFile file("/home/alvin/text.txt"); if(!file.open(QIOD ...

  2. Qt读取TXT文件时,GBK与UTF-8编码判断

    读取txt文件时,很多时候无法获取文件的编码格式.如果直接进行使用,则有可能出现乱码.需要在使用前将其转为Unicode(Qt的默认编码格式). 虽然实际的编码格式种类非常多,但平常主要使用的有GBK ...

  3. web端自动化——Python读取txt文件、csv文件、xml文件

    1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...

  4. Javascript写入txt和读取txt文件的方法

    文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...

  5. 关于读取txt文件中文乱码问题

    在处理文件的过程中,读取txt文件出现中文乱码.这种情况是由于编码字符不一致导致. public static string ReadFile(string path, string fileName ...

  6. JAVA读取TXT文件、新建TXT文件、写入TXT文件

    1.创建TXT文件 按照正常的逻辑写就好 先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好 2.读取TXT文件 ...

  7. 用C#读取txt文件的方法

    1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...

  8. C#生成PDF文档,读取TXT文件内容

    using System.IO;using iTextSharp.text;using iTextSharp.text.pdf; //需要在项目里引用ICSharpCode.SharpZipLib.d ...

  9. selenium读取txt文件的几种方式

    1.用java读取txt文件 public static String readFJ(String path) { path = "D:/workspace/hetong.txt" ...

随机推荐

  1. SimpleDateFormat 取当前周的周一和周日的日期,当前月第一个和最后一天的日期

    /** * 类说明 :以及获取当前周的周一和周日的日期,当前月第一个和最后一天的日期 * 日期格式化:格式参数  G 年代标志符  y 年 M 月 d 日    h 时 在上午或下午 (1~12)  ...

  2. com.baidu.mapapi.CoordType

    2.2.2升级到3.0.1百度报错了, 一:请检查.jar,.so是否是最新的 二:clear

  3. 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  ...

  4. React Native(十三)——ios键盘挡住textInput

    渐入佳境 用React Native重构的项目也快接近尾声,剩下的就是适配ios的功能了.慢慢地也从中琢磨出了一点门道,于是就遇见了键盘遮挡textInput问题斑斑: 正常页面: android点击 ...

  5. SqlServer 连接远程服务器数据库 实现跨服务器联合查询

    第一种: exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'IT ...

  6. C数组&结构体&联合体快速初始化

    背景 C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序. C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元 ...

  7. 【面试题】Java EE面试题

    第一部分:Servlet/JSP快速入门 1.      请列举至少6种javaEE技术,并简述其作用. 解析: javaEE是一系列的技术,主要包扩13种.对于开发人员来说,了解几种主要的技术是非常 ...

  8. centos 安装 Vagrant

    使用的软件: 1. CentOS:  CentOS release 6.4 (Final) 2. Vagrant: vagrant_1.2.2_i686.rpm 3. Virtualbox: Virt ...

  9. Qt+imx6编写的楼宇对讲管理平台

    第一个初步版本. 1:楼宇对讲模块.住户报警模块.门禁控制模块.系统设置模块. 2:实时对讲信息卡片式展示,通话记录表格展示. 3:设备面板展示,实时显示上下线报警等信息. 4:设备查询.记录查询.运 ...

  10. C C++ 文件输入与输出

    C语言: 一 打开关闭文件 1 fopen函数 用于打开文件 FILE *fopen(char *filename, *type); fopen("c:\\ccdos\\clib" ...