Python界面编程第二十一课:Pyside2 (Qt For Python)打印预览QTextEdit内容
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内容相关推荐
- Python界面编程第二十课:Pyside2 (Qt For Python)文本编辑框QTextEdit
先看完整代码: from PySide2.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit import sys from ...
- Python界面编程第十一课:Pyside2 (Qt For Python)创建进度条
QProgressBar 是什么? 进度条用于向用户提供操作进度的指示,并提示用户应用程序仍在运行. 进度条使用了范围的概念.通过指定最小和最大值来设定范围,之后会按百分比来显示范围.百分比是通过(v ...
- Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局
GridLayout 是什么? QGridLayout 是控制网格布局的类. QGridLayout 会占据它的可用空间(通过父布局或parentWidget(),将其划分为行和列,并将其管理的每个控 ...
- Python界面编程第十七课:Pyside2 (Qt For Python)QCompleter自动完成
QCompleter 是什么? QCompleter可以在任何Qt控件(如QLineEdit和QComboBox)中提供自动完成功能.当用户开始输入一个单词时,QCompleter根据一个单词列表提示 ...
- Python界面编程第八课:Pyside2 (Qt For Python)打开关于窗口
先上代码: from PySide2.QtWidgets import QApplication, QWidget, QMessageBox, QPushButton import sys from ...
- Python界面编程第七课:Pyside2 (Qt For Python)窗口居中
先上代码: from PySide2.QtWidgets import QApplication, QWidget, QDesktopWidget import sys from PySide2.Qt ...
- Python界面编程第十课:Pyside2 (Qt For Python)创建StatusBar
QStatusBar 是什么? QStatusBar类提供了一个适合于显示状态信息的横向条幅. 状态指示分为三类: Temporary – 一般地占据了大部分的状态栏.用于解释控件提示文本或菜单项. ...
- Python界面编程第二课:Pyside2 创建窗口 (Python GUI)
Pyside2 创建窗口 (Python GUI) – 在这篇Pyside2文章中,会演示如何创建窗口,学习本课之前请先看第一课<我们开始用Pyside2 (Qt For Python)> ...
- qt tableb view 打印预览和打印的问题 个人解决办法
好了长话短说 因为tableview 不提供print 函数 ,所以 要实现打印现在基本是基于 两种 一种是利用render 函数 一种是利用 html 来实现 我个人因为在用rend ...
最新文章
- linux 启动2个tomcat,在LINUX中启动多个TOMCAT
- 我的Android学习体系
- 怎样利用超图客户端打点_渗透测试——XSS利用工具BeEF攻击演示
- 倒排列表压缩算法汇总——分区Elias-Fano编码貌似是最牛叉的啊!
- 数据库操作技术--Spring jdbcTemplate
- 【C语言项目】贪吃蛇游戏(下)
- 文献记录(part59)--多任务学习
- python123动物重量排序_Python爬虫图片学习(一)
- Java图形 图像与多媒体基础,十一. 图形、图像与多媒体1.绘图基础
- 萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第四节 PCA与梯度上升 (上)理解篇...
- 分布式精华问答 | 分布式系统面临哪些挑战?​
- 关于豆瓣电台收费的思考
- 利用Telerik Fiddler 进行手机抓包!
- 安师大计算机安全网络,计信学院成功举行网络与信息安全安徽省重点实验室2020年度学术年会...
- 如何做实时监控?—— 参考 Spring Boot 实现
- 怎么将计算机的触摸鼠标锁定,怎么锁定笔记本触摸板_怎么锁定笔记本键盘
- deepstream多路rtsp流,避免相互影响
- OpenCV-Python教程:图像金字塔
- 文本分析-全角字符串与半角字符串的转换
- 爬取豆瓣的战狼影评(cookies 云词)
热门文章
- wps html数据表,WPS表格怎么快速录入数据?
- iOS URLWithString返回为空nil的解决方案
- css 两个div一行居中显示,CSS:多个DIV在同一行居中显示的一种实现方法
- 一个灵活的AssetBundle打包工具
- Java数据结构——双向链表、约瑟夫问题
- 一份稳进Shopee的简历长啥样?
- TL-WN725N V3无线网卡驱动移植与wireless工具wpa_supplicant-2.6
- CAD如何阵列复制,复制快捷键是什么?
- elasticsearch实战三部曲之一:索引操作
- c语言获取结构体大小sizeof,C语言sizeof求结构体数组长度