zoukankan      html  css  js  c++  java
  • 【PyQt5-Qt Designer】读取txt文件在打印

      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         # 创建菜单,添加动作
     59         self.printMenu = self.menuBar().addMenu(self.tr("打印"))
     60         self.printMenu.addAction(self.printAction1)
     61         self.printMenu.addAction(self.printAction2)
     62         self.printMenu.addAction(self.printAction3)
     63         self.printMenu.addAction(self.printAction4)
     64 
     65 
     66 
     67     # 动作一:打印,无预览
     68     def on_printAction1_triggered(self):
     69         printer = QPrinter()
     70         printDialog = QPrintDialog(printer, self)
     71         if printDialog.exec_() == QDialog.Accepted:
     72             self.handlePaintRequest(printer)
     73 
     74 
     75     # 动作二:打印,有预览
     76     def on_printAction2_triggered(self):
     77         dialog = QPrintPreviewDialog()
     78         dialog.paintRequested.connect(self.handlePaintRequest)
     79         dialog.exec_()
     80 
     81     # 动作三:直接打印
     82     def on_printAction3_triggered(self):
     83         printer = QPrinter()
     84         self.handlePaintRequest(printer)
     85 
     86     # 动作四:打印到pdf
     87     def on_printAction4_triggered(self):
     88         printer = QPrinter()
     89         printer.setOutputFormat(QPrinter.PdfFormat)
     90         printer.setOutputFileName("D:/pdf打印测试.pdf")
     91         self.handlePaintRequest(printer)
     92 
     93 
     94     ## 打印函数
     95     def handlePaintRequest(self, printer):
     96         document = QTextDocument()
     97         cursor = QTextCursor(document)
     98         cursor.insertText(self.label.text())
     99         document.print(printer)
    100 
    101 
    102 if __name__ == "__main__":
    103     app = QApplication(sys.argv)
    104     main = MainWindow()
    105     main.show()
    106     sys.exit(app.exec_())

  • 相关阅读:
    Robocode教程4——Robocode的游戏物理
    JAVA:获取系统中可用的字体的名字
    Robocode游戏规则
    Robocode教程2——你的第一个robo,取个好名字哦
    Robocode教程1——安装、运行、配置
    第二十四章 异常和错误处理 6异常类与模板的关系 简单
    第二十四章 异常和错误处理 5异常类的虚函数 简单
    第二十三模板 18.4算法类 简单
    解决不能通过'/tmp/mysql.sock'连到服务器 简单
    第二十四章 异常和错误处理 4创建异常类的成员函数 简单
  • 原文地址:https://www.cnblogs.com/XJT2018/p/9871730.html
Copyright © 2011-2022 走看看