[PyQt] printpreview.cpp to printpreview.py
Mark Summerfield
mark at qtrac.eu
Thu Nov 15 09:06:34 GMT 2007
On 2007-11-15, alban.minassian at free.fr wrote:
> Hello
>
> I can not convert a few lines of code file C: \ Qt \ 4.3.2 \ demos \
[snip]
> PYQT :
> self.paperSize.rwidth() *= QtCore.qreal(self.view.logicalDpiX()) /
> self.printer.logicalDpiX();
> SyntaxError: illegal expression for augmented assignment
>
> How to convert these two lines in pyqt?
> paperSize.rwidth() *= qreal(view->logicalDpiX()) /
> printer.logicalDpiX();
> paperSize.rheight() *= qreal(view->logicalDpiY()) /
> printer.logicalDpiY();
You are trying to update a QSizeF object and according to the PyQt docs
the relevant augmented assignments take a Python float not a
QtCore.qreal.
But I tried converting to floats and got the same problem you did.
The answer I think is to avoid assignments to C++ reference return
values (esp. since the rwidth() and rheight() methods don't appear in
the docs which may be a hint that they don't work:-)
So maybe write something like this instead (untested):
self.paperSize.setWidth(self.paperSize.width() * \
(view.logicalDpiX() / float(printer.logicalDpiX)))
self.paperSize.setHeight(self.paperSize.height() * \
(view.logicalDpiY() / float(printer.logicalDpiY)))
--
Mark Summerfield, Qtrac Ltd., www.qtrac.eu
More information about the PyQt
mailing list