Pyside2 的QPrintSupport类中的QPrinter 和 QPrintPreviewDialog支持打印功能。

先看完整代码:

from PySide2.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit
import sys
from PySide2.QtGui import QIcon, QFont
from PySide2.QtPrintSupport import QPrinter, QPrintPreviewDialogclass Window(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("Simple Notepad Application")self.setGeometry(300,200,1280,600)self.textEdit = QTextEdit(self)self.textEdit.setFont(QFont('Sanserif', 13))self.setCentralWidget(self.textEdit)self.setIcon()self.create_menu()self.show()def setIcon(self):appIcon = QIcon("icon.png")self.setWindowIcon(appIcon)def create_menu(self):mainMenu = self.menuBar()fileMenu = mainMenu.addMenu('File')viewMenu = mainMenu.addMenu('View')editMenu = mainMenu.addMenu('Edit')fontMenu = mainMenu.addMenu('Font')helpMenu = mainMenu.addMenu('Help')openAction = QAction(QIcon('open.png'), "Open", self)openAction.setShortcut('Ctrl+O')saveAction = QAction(QIcon('save.png'), "Save", self)saveAction.setShortcut('Ctrl+S')exitAction = QAction(QIcon('exit.png'), "Exit", self)exitAction.setShortcut('Ctrl+X')previewAction = QAction(QIcon('printpreview.png'), "Print Preview", self)exitAction.triggered.connect(self.exit_app)previewAction.triggered.connect(self.print_preview_dialog)fileMenu.addAction(openAction)fileMenu.addAction(saveAction)fileMenu.addAction(exitAction)viewMenu.addAction(previewAction)def exit_app(self):self.close()def print_preview_dialog(self):printer = QPrinter(QPrinter.HighResolution)previewDialog = QPrintPreviewDialog(printer, self)previewDialog.paintRequested.connect(self.print_preview)previewDialog.exec_()def print_preview(self, printer):self.textEdit.print_(printer)myapp = QApplication(sys.argv)
window = Window()
myapp.exec_()
sys.exit()

previewAction.triggered.connect信号连接了self.print_preview_dialog槽,其中的previewDialog.paintRequested.connect信号又连接了self.print_preview槽。 QPrinter和QPrintPreviewDialog的组合提供了打印预览的功能。

运行看效果:

如果不清楚其它代码含义,请参考前面课程:

Python界面编程第一课:我们开始用Pyside2 (Qt For Python)

Python界面编程第二课:Pyside2 创建窗口 (Python GUI)

Python界面编程第三课:Pyside2 (Qt For Python)给窗口加个图标

Python界面编程第四课:Pyside2 (Qt For Python)创建图标模式

Python界面编程第五课:Pyside2 (Qt For Python)怎么创建控件提示Tooltip

Python界面编程第六课:Pyside2 (Qt For Python),QPushButton按钮的信号与槽

Python界面编程第七课:Pyside2 (Qt For Python)窗口居中

Python界面编程第八课:Pyside2 (Qt For Python)打开关于窗口

Python界面编程第九课:Pyside2 (Qt For Python)创建数字时钟

Python界面编程第十课:Pyside2 (Qt For Python)创建StatusBar

Python界面编程第十一课:Pyside2 (Qt For Python)创建进度条

Python界面编程第十二课:Pyside2 (Qt For Python)布局管理QVBoxLayout 和 QHBoxLayout

Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局

Python界面编程第十四课:Pyside2 (Qt For Python)使用Calendar创建日历

Python界面编程第十五课:Pyside2 (Qt For Python)使用CheckBox复选框

Python界面编程第十六课:Pyside2 (Qt For Python)FontComboBox字体选择框

Python界面编程第十七课:Pyside2 (Qt For Python)QCompleter自动完成

Python界面编程第十八课:Pyside2 (Qt For Python)Slider拖动条

Python界面编程第十九课:Pyside2 (Qt For Python)创建菜单

Python界面编程第二十课:Pyside2 (Qt For Python)文本编辑框QTextEdit

Python界面编程第二十一课:Pyside2 (Qt For Python)打印预览QTextEdit内容相关推荐

  1. Python界面编程第二十课:Pyside2 (Qt For Python)文本编辑框QTextEdit

    先看完整代码: from PySide2.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit import sys from ...

  2. Python界面编程第十一课:Pyside2 (Qt For Python)创建进度条

    QProgressBar 是什么? 进度条用于向用户提供操作进度的指示,并提示用户应用程序仍在运行. 进度条使用了范围的概念.通过指定最小和最大值来设定范围,之后会按百分比来显示范围.百分比是通过(v ...

  3. Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局

    GridLayout 是什么? QGridLayout 是控制网格布局的类. QGridLayout 会占据它的可用空间(通过父布局或parentWidget(),将其划分为行和列,并将其管理的每个控 ...

  4. Python界面编程第十七课:Pyside2 (Qt For Python)QCompleter自动完成

    QCompleter 是什么? QCompleter可以在任何Qt控件(如QLineEdit和QComboBox)中提供自动完成功能.当用户开始输入一个单词时,QCompleter根据一个单词列表提示 ...

  5. Python界面编程第八课:Pyside2 (Qt For Python)打开关于窗口

    先上代码: from PySide2.QtWidgets import QApplication, QWidget, QMessageBox, QPushButton import sys from ...

  6. Python界面编程第七课:Pyside2 (Qt For Python)窗口居中

    先上代码: from PySide2.QtWidgets import QApplication, QWidget, QDesktopWidget import sys from PySide2.Qt ...

  7. Python界面编程第十课:Pyside2 (Qt For Python)创建StatusBar

    QStatusBar 是什么?  QStatusBar类提供了一个适合于显示状态信息的横向条幅. 状态指示分为三类: Temporary – 一般地占据了大部分的状态栏.用于解释控件提示文本或菜单项. ...

  8. Python界面编程第二课:Pyside2 创建窗口 (Python GUI)

    Pyside2 创建窗口 (Python GUI) – 在这篇Pyside2文章中,会演示如何创建窗口,学习本课之前请先看第一课<我们开始用Pyside2 (Qt For Python)> ...

  9. qt tableb view 打印预览和打印的问题 个人解决办法

    好了长话短说  因为tableview 不提供print 函数 ,所以 要实现打印现在基本是基于 两种  一种是利用render 函数    一种是利用 html 来实现    我个人因为在用rend ...

最新文章

  1. linux 启动2个tomcat,在LINUX中启动多个TOMCAT
  2. 我的Android学习体系
  3. 怎样利用超图客户端打点_渗透测试——XSS利用工具BeEF攻击演示
  4. 倒排列表压缩算法汇总——分区Elias-Fano编码貌似是最牛叉的啊!
  5. 数据库操作技术--Spring jdbcTemplate
  6. 【C语言项目】贪吃蛇游戏(下)
  7. 文献记录(part59)--多任务学习
  8. python123动物重量排序_Python爬虫图片学习(一)
  9. Java图形 图像与多媒体基础,十一. 图形、图像与多媒体1.绘图基础
  10. 萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第四节 PCA与梯度上升 (上)理解篇...
  11. 分布式精华问答 | 分布式系统面临哪些挑战?​
  12. 关于豆瓣电台收费的思考
  13. 利用Telerik Fiddler 进行手机抓包!
  14. 安师大计算机安全网络,计信学院成功举行网络与信息安全安徽省重点实验室2020年度学术年会...
  15. 如何做实时监控?—— 参考 Spring Boot 实现
  16. 怎么将计算机的触摸鼠标锁定,怎么锁定笔记本触摸板_怎么锁定笔记本键盘
  17. deepstream多路rtsp流,避免相互影响
  18. OpenCV-Python教程:图像金字塔
  19. 文本分析-全角字符串与半角字符串的转换
  20. 爬取豆瓣的战狼影评(cookies 云词)

热门文章

  1. wps html数据表,WPS表格怎么快速录入数据?
  2. iOS URLWithString返回为空nil的解决方案
  3. css 两个div一行居中显示,CSS:多个DIV在同一行居中显示的一种实现方法
  4. 一个灵活的AssetBundle打包工具
  5. Java数据结构——双向链表、约瑟夫问题
  6. 一份稳进Shopee的简历长啥样?
  7. TL-WN725N V3无线网卡驱动移植与wireless工具wpa_supplicant-2.6
  8. CAD如何阵列复制,复制快捷键是什么?
  9. elasticsearch实战三部曲之一:索引操作
  10. c语言获取结构体大小sizeof,C语言sizeof求结构体数组长度