I've come across an interesting issue which has a workaround in python, but
which is, i think, worth mentioning.

QScrollView defines a virtual function

drawContents(QPainter *,int,int,int,int)

QScrollView also inherits from QFrame, which defines

drawContents(QPainter *)

If you derive from QScrollView in python, and implement the 6 argument version
of drawContents, you catch *both* the call to QFrame::drawContents, and the
call to QScrollView::drawContents, resulting in the following exception:

TypeError: drawContents() takes exactly 6 arguments (2 given)

as well as a successful call to the implementation of drawContents that the
python derived class provides.

the solution is to define the python drawContents function as:

   def drawContents(self,*args):
      if len(args)==1:
         return apply(qt.QFrame.drawContents,(self,)+args)
      else:
         painter,clipx,clipy,clipw,cliph=args

I imagine that things get more hairy still when there are two overloads that
have the same number of arguments but different types.

Toby.

-- 
   :gurfle: /ger'fl/ interj.  An expression of shocked disbelief.
"He said we have to recode this thing in FORTRAN by next week.  Gurfle!"
Compare {weeble}.

  [ Toby Sargeant : Inpharmatica : Developer : [EMAIL PROTECTED] ]
      [ http://www.inpharmatica.co.uk : 020 7074 4600 fax 020 7631 4844 ]

_______________________________________________
PyKDE mailing list    [EMAIL PROTECTED]
http://mats.gmd.de/mailman/listinfo/pykde

Reply via email to