[PyQt] QPrintDialog (pyqt4)
russ at coldstonelabs.org
Sat Feb 20 03:48:57 GMT 2010
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.
dialog = QtGui.QPrintDialog(printer, self)
if(dialog.exec_() != QtGui.QDialog.Accepted):
printLabel = QtGui.QLabel()
painter = QtGui.QPainter(printer)
> 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):
> dialog = QtGui.QPrintDialog(printer, self)
> if(dialog.exec_() != QtGui.QDialog.Accepted):
> printGUI = QtGui.QTabWidget
> painter = QtGui.QPainter(printer)
> 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):
>> self.label=QtGui.QLabel("Print test")
>> def goPrinter(self):
>> dialog = QtGui.QPrintDialog(printer, self)
>> if(dialog.exec_() != QtGui.QDialog.Accepted):
>> printLabel = QtGui.QLabel("Hello my printer.")
>> painter = QtGui.QPainter(printer)
>> if __name__ == "__main__":
>> import sys
>> app = QtGui.QApplication(sys.argv)
>> QtCore.QTimer.singleShot(1000, window.goPrinter)
>> PyQt mailing list PyQt at riverbankcomputing.com
More information about the PyQt