<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt;color:#000000;"><div>hi all<br>i have problem with QPrintPreviewDialog() i made GUI with qt-designer to print text based on QtextEdit <br><br>when i click the button pre_print a QPrintPreviewDialog appear with print Preview of textedit <br><br>all of that good until i close the dialog and change the textedit text and Preview again i found Preview&nbsp; of <br>the old text instead of the new text and i have to change the page from portrait landscape to update it<br><br>any idea how to fix this<br><br>the p2.py :<br>=========<br># -*- coding: utf-8 -*-<br><br># Form implementation generated from reading ui file 'p2.ui'<br>#<br># Created: Thu Dec 11 09:24:22 2008<br>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by: PyQt4 UI code generator 4.4.4<br>#<br># WARNING! All changes made in this file will be
 lost!<br><br>from PyQt4 import QtCore, QtGui<br><br>class Ui_printerprinter(object):<br>&nbsp;&nbsp;&nbsp; def setupUi(self, printerprinter):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printerprinter.setObjectName("printerprinter")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printerprinter.setWindowModality(QtCore.Qt.WindowModal)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printerprinter.resize(471, 412)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.centralwidget = QtGui.QWidget(printerprinter)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.centralwidget.setObjectName("centralwidget")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.pre_print = QtGui.QPushButton(self.centralwidget)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.pre_print.setGeometry(QtCore.QRect(140, 20, 191, 51))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.pre_print.setObjectName("pre_print")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit =
 QtGui.QTextEdit(self.centralwidget)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit.setGeometry(QtCore.QRect(30, 90, 411, 241))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.textEdit.setObjectName("textEdit")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.exit = QtGui.QPushButton(self.centralwidget)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.exit.setGeometry(QtCore.QRect(130, 350, 201, 41))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.exit.setObjectName("exit")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printerprinter.setCentralWidget(self.centralwidget)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.retranslateUi(printerprinter)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QObject.connect(self.exit, QtCore.SIGNAL("clicked()"), printerprinter.close)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtCore.QMetaObject.connectSlotsByName(printerprinter)<br><br>&nbsp;&nbsp;&nbsp; def retranslateUi(self,
 printerprinter):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printerprinter.setWindowTitle(QtGui.QApplication.translate("printerprinter", "printer printer printer", None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.pre_print.setText(QtGui.QApplication.translate("printerprinter", "pre print", None, QtGui.QApplication.UnicodeUTF8))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.exit.setText(QtGui.QApplication.translate("printerprinter", "exit", None, QtGui.QApplication.UnicodeUTF8))<br>-------------------------------------------------------------------------<br><br>the main program test2.py :<br>=====================<br># -*- coding: utf-8 -*-<br>#-------------------------------------------- import ---------------------------------------<br>from PyQt4.QtCore import *<br>from PyQt4.QtGui import *<br>from datetime import date<br>from p2 import *<br>import string<br>import sys,os,glob,re<br>import
 codecs<br>import encodings<br>import chardet<br>from chardet.universaldetector import UniversalDetector<br>#--------------------------------------------------------------------------------------------<br><br>class printall(QMainWindow):<br>&nbsp;&nbsp;&nbsp; def __init__(self, parent=None):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QWidget.__init__(self, parent)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.ui=Ui_printerprinter()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.ui.setupUi(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.preview = QPrintPreviewDialog()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.preview.resize(800, 600)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect(self.preview,SIGNAL("paintRequested (QPrinter
 *)"),self.what)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect(self.ui.pre_print,SIGNAL("clicked ()"), self.ppreview)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def what(self,other):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.other=other<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asd=((self.ui.textEdit.toPlainText()).split('\n'))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.preview.autoFillBackground()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter = QPainter()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter.begin(other)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for s in asd:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print s #test if signal emit when close the dialog and open it again<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if x ==
 0:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other.newPage()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x=1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #painter.setPen(QColor(168, 34, 3))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # change colore<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter.setFont(QFont('Decorative', 25))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # change font<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter.drawText(100,100,s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # printing
 point<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter.end()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def ppreview(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print "working"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.preview.exec_()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>#----------------------------------------- calling for main and graphic ---------------------------------<br>if __name__ == '__main__':<br>&nbsp;&nbsp;&nbsp; app=QApplication(sys.argv)<br>&nbsp;&nbsp;&nbsp; myapp=printall()<br>&nbsp;&nbsp;&nbsp; myapp.show()<br>&nbsp;&nbsp;&nbsp;
 sys.exit(app.exec_())<br>#--------------------------------------------------------------------------------------------------------<br>-------------------------------------------------------------------------<br><br><br><br><br></div></div><br>

      </body></html>