You can do something like this if it is a function of your MainWindow.
self as a argument in grabWidget is your baseWidget, like a QMainWindow
for example. No doubt you would have to make sure it fits on the page
though and resize it as needed.
def goPrinter(self):
printer=QtGui.QPrinter()
dialog = QtGui.QPrintDialog(printer, self)
if(dialog.exec_() != QtGui.QDialog.Accepted):
return
p=QtGui.QPixmap.grabWidget(self)
printLabel = QtGui.QLabel()
printLabel.setPixmap(p)
painter = QtGui.QPainter(printer)
printLabel.render(painter)
painter.end()
jaybstory wrote:
I understand your example for printing Labels. I'm wondering if there is a
way to just print the entire GUI? I tried to do this, but its not correct:
def printd(self):
printer=QtGui.QPrinter()
dialog = QtGui.QPrintDialog(printer, self)
if(dialog.exec_() != QtGui.QDialog.Accepted):
return
printGUI = QtGui.QTabWidget
painter = QtGui.QPainter(printer)
printGUI.render(painter)
painter.end()
maybe I'm not understanding the way render works? Or is this the wrong
approach all together? Thank you.
Russell Valentine wrote:
Joi Barnett wrote:
thank you for the reply,
do you have an example of how to use QPrinter in python?
I didn't have one, but I just made one really quick. Very simple
example. I Cc'd the list in case anyone else had anything to add.
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self, app):
QtGui.QMainWindow.__init__(self)
self.app=app
self.label=QtGui.QLabel("Print test")
self.setCentralWidget(self.label)
def goPrinter(self):
printer=QtGui.QPrinter()
dialog = QtGui.QPrintDialog(printer, self)
if(dialog.exec_() != QtGui.QDialog.Accepted):
return
printLabel = QtGui.QLabel("Hello my printer.")
painter = QtGui.QPainter(printer)
printLabel.render(painter)
painter.end()
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
window=MainWindow(app)
window.show()
QtCore.QTimer.singleShot(1000, window.goPrinter)
#ui.show()
sys.exit(app.exec_())
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt