【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" ...
随机推荐
- iOS开发-- 使用NSNumber将int、float、long等数据类型加入到数组或字典中
// 设置值 NSNumber *number=[NSNumber numberWithInt:45]; // 取值 NSLog(@"NSNumber %d",[number in ...
- unity3d抛物线的脚本
using UnityEngine; using System.Collections; public class ProjectileTest : MonoBehaviour { public Ga ...
- List 集合的N层遍历
package com.j1.cms.model; import java.io.Serializable; import java.util.List; /** * Created by wangc ...
- React Native(四)——顶部以及底部导航栏实现方式
效果图: 一步一步慢慢来: 其实刚入手做app的时候,就应该做出简单的顶部以及底部导航栏.无奈又在忙其他事情,导致这些现在才整理出来. 1.顶部导航栏:react-native-scrollable- ...
- PHP 中文字符串截取
$str = "abcdef啊啊吧啊"; function my_sub($str, $st ,$len){ $ret = ""; for( $st; $len ...
- Clock skewdetected. Your build may be incomplete.
解决方法: find . -type f | xargs -n touch make clean make
- window策略设置
gpedit.msc 组策略编辑器 secopl.msc 本地安全设置 共享(不用登录即可访问本地共享)设置: 运行里输入secpol.msc启动“本地安全设置”-“用户权利指派”-将“拒绝从网络访 ...
- JS基础---->javascript的基础(二)
记载javascript的一些基础的知识.我们在春风秋雨中无话不说,又在春去秋来中失去了联系. js中string类型 一.字符方法:charAt() 和 charCodeAt() var strin ...
- 剑指offer——35复杂链表的复制
这题很是巧妙. 突破了常规思维. 竟然可以把传入进来的链表和复制的链表链在一起.然后再算出slibling指针.最后在分离. 直接把空间复杂度变为O(1)了. 很巧妙,很实用. 题目: 请实现函数Co ...
- 精品绿色便携软件 & 录制操作工具
https://www.vtaskstudio.com/index.php 录制宏工具 https://soft.anruan.com/29821/ TinyTask V1.5 电脑版 https ...