PyQt5打印機


1、打印機操作(打印默認文本里面的內容)
from PyQt5 import QtGui,QtWidgets,QtPrintSupport
from PyQt5.QtWidgets import *
import sys

class Printsupport1(QMainWindow):
def __init__(self):
super(Printsupport1,self).__init__()
self.setGeometry(500,200,300,300)
self.button=QPushButton("打印QtextEdit控件中的內容",self)
self.button.setGeometry(20,60,260,200)
self.editor=QTextEdit("默認文本",self)
self.button.clicked.connect(self.print)

def print(self):
printer=QtPrintSupport.QPrinter() #打印機

painter=QtGui.QPainter()
#將繪制的目標重新定向到打印機
painter.begin(printer)
screen=self.editor.grab()
painter.drawPixmap(10,10,screen)
painter.end()
print("print")

if __name__=="__main__":
app=QApplication(sys.argv)
p=Printsupport1()
p.show()
sys.exit(app.exec_())

2、顯示打印樣式設置對話框
from PyQt5.QtPrintSupport import QPageSetupDialog,QPrintDialog,QPrinter
from PyQt5.QtWidgets import *
import sys

class Printdialog(QMainWindow):
def __init__(self):
super(Printdialog,self).__init__()
self.printer=QPrinter() #定義一個默認的打印機
self.initUI()

def initUI(self):
self.setGeometry(300,300,500,400)
self.setWindowTitle("打印對話框")
self.editor=QTextEdit(self)
self.editor.setGeometry(20,20,300,270)

self.openbutton=QPushButton("打開文件",self)
self.openbutton.move(350,20)

self.settingbutton=QPushButton("打印設置",self)
self.settingbutton.move(350,50)

self.printbutton=QPushButton("打印文檔",self)
self.printbutton.move(350,80)

self.openbutton.clicked.connect(self.openfile)
self.settingbutton.clicked.connect(self.showsettingdailog)
self.printbutton.clicked.connect(self.showprintdialog)
#打開文件
def openfile(self):
fname=QFileDialog.getOpenFileName(self,"打開文本文件","./")
if fname[0]:
with open(fname[0],"r",encoding='utf-8',errors='ignore') as f:
self.editor.setText(f.read())

#顯示打印設置對話框
def showsettingdailog(self):
printerdailog=QPageSetupDialog(self.printer,self)
printerdailog.exec()

#顯示打印對話框
def showprintdialog(self):
print1=QPrintDialog(self.printer,self)
if QDialog.Accepted==print1.exec():
self.editor.print(self.printer)

if __name__=="__main__":
app=QApplication(sys.argv)
p=Printdialog()
p.show()
sys.exit(app.exec_())


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM