[PyQt] [PyQt3] QPen issues

Hans-Peter Jansen hpj at urpla.net
Mon May 14 20:48:05 BST 2007


Am Montag, 14. Mai 2007 21:22 schrieb Ingmar Steen:
> On 5/14/07, Hans-Peter Jansen <hpj at urpla.net> wrote:
> > Am Montag, 14. Mai 2007 09:56 schrieb Phil Thompson:
> > >
> > > In C++ pen() returns a const reference - and SIP doesn't support
> > > const except to cast it away. I don't know what the C++ compiler is
> > > supposed to do in those circumstances - but it looks like it is just 
> > > discarding any attempts to modify the const QPen.
> >
> > Hmm, shouldn't this code behave in the same way too, than:
> >
> >     void paintEvent(QPaintEvent* event)
> >     {
> >         QPainter p(this);
> >         QPen pn=p.pen();
> >         pn.setWidth(2);
> >
> > [found in qt3/doc/examples/progress/progress.cpp, line 85]
>
> A bit off-topic, but the reason the C++ version you referenced works is
> because in C++ this will implicitly make a mutable copy of the const QPen
> object using QPen's copy constructor. In python, you apparently have to
> do that explicitly.

Ahh, the wonders of the overloaded assignment operator <grmpf>. Thanks for 
clarification, Ingmar.

BTW, I think that differences between C++ and Python concerning Qt are 
perfectly fine here (and generally on this list). I guess, it even 
generates a nice public (googable) trace for other victims of this issue in 
the future.

Cheers,
  Pete


More information about the PyQt mailing list