您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在python中使用QPrinter打印控件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
打印圖像是圖像處理軟件中的一個常用功能,打印圖像實際上是在QPaintDevice中畫圖,與平時在QWidget。QPixmap和QImage中畫圖是一樣的,都是創建一個QPainter對象進行畫圖的,只是打印使用的是QPrinter,它的本質上也是一個QPainterDevice(繪圖設備)
import sys from PyQt5.QtWidgets import QApplication,QMainWindow,QLabel,QSizePolicy,QAction from PyQt5.QtPrintSupport import QPrintDialog,QPrinter from PyQt5.QtGui import QImage,QIcon,QPixmap class MainWindow(QMainWindow): def __init__(self,parent=None): super(MainWindow, self).__init__(parent) #設置標題 self.setWindowTitle('打印圖片') #創建標簽,設置標簽的大小規則以及控件的位置居中 self.imageLabel=QLabel() self.imageLabel.setSizePolicy(QSizePolicy.Ignored,QSizePolicy.Ignored) self.setCentralWidget(self.imageLabel) #實例化Qimage類 self.image = QImage() #自定義的多個函數,實現的功能不一 self.createActions() self.createMenus() self.createToolBars() if self.image.load('images\screen.png'): self.imageLabel.setPixmap(QPixmap.fromImage(self.image)) self.resize(self.image.width(),self.image.height()) def createActions(self): #加載圖標,添加快捷方式,添加提示信息,綁定槽函數 self.PrintAction=QAction(QIcon('images\screen.png'),self.tr('打印'),self) self.PrintAction.setShortcut('Ctrl+P') self.PrintAction.setStatusTip(self.tr('打印')) self.PrintAction.triggered.connect(self.slotPrint) def createMenus(self): #實例化菜單欄,并添加一個父菜單,以及把PrintAction添加到父菜單下 PrintMenu=self.menuBar().addMenu(self.tr('打印')) PrintMenu.addAction(self.PrintAction) def createToolBars(self): #在工具欄區域內添加控件printACtion fileToolBar=self.addToolBar('Print') fileToolBar.addAction(self.PrintAction) def slotPrint(self): #實例化打印圖像對象 printer=QPrinter() #打印窗口彈出 printDialog=QPrintDialog(printer,self) if printDialog.exec_(): painter=QPainter(printer) #實例化視圖窗口 rect=painter.viewport() #獲取圖片的尺寸 size=self.image.size() size.scale(rect.size(),Qt.KeepAspectRatio) #設置視圖窗口的屬性 painter.setViewport(rect.x(),rect.y(),size.width(),size.height()) #設置窗口的大小為圖片的尺寸,并在窗口內繪制圖片 painter.setWindow(self.image.rect) painter.drawImage(0,0,self.image) if __name__ == '__main__': app=QApplication(sys.argv) main=MainWindow() main.show() sys.exit(app.exec_())
運行程序,顯示效果如下
打印功能
關于怎么在python中使用QPrinter打印控件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。