On Monday October 13 2003 20:23, Russell Valentine wrote: > On Sun, 12 Oct 2003 22:25:59 -0700
> I notice this also in the documentation. > > """ > void rgb(int *r, int *g, int *b); > > This takes no parameters and returns the r, g and b values as > a tuple. """ > So does this mean the > QRgb QColor::rgb () const > function is not implemented because void rgb(int *r, int *g, > int *b) which takes no parameters takes over instead? That appears to be the way PyQt 3.7 is coded. PyQt 3.8 reverses the order of the methods to this: QRgb rgb() const; //[1] .... // Obsolete. void rgb(int *,int *,int *) const; //[2] In the C++ code generated, the call matches the signature (or argument list) of [1] first, so [2] never gets executed (the opposite of 3.7). There's a new method "getRgb" that returns the tuple, but it's versioned for >= Qt3.2.0, and the old rgb() that returns a tuple isn't versioned out (but effectively is never called anymore). > I try the following: > > grayColorMap = [] > for i in range(256): > grayColorMap.append(qRgb(i, i, i)) > grayColorMap = [] > for i in range(256): > grayColorMap.append(QColor(i, i, i).rgb()) > It likes the first one, but not the second one. It gives. > Traceback (most recent call last): > File "./testQColor.py", line 21, in ? > image = QImage(buffer, 2, 2, 8, grayColorMap, 256, > QImage.IgnoreEndian) File > "/usr/lib/python2.2/site-packages/qt.py", line 439, in > __init__ libqtc.sipCallCtor(123,self,args) > TypeError: an integer is required If you print grayColorMap, it's probably a list of tuples of ints, not a list of ints. > I must admit that qRgb(r,g,b) is better than making a > QColor(r,g,b) and calling rgb() on it, so it isn't that big of > a deal for me at the moment. With PyQt- 3.8 I get: >>> from qt import QColor >>> QColor (0x0, 0x0, 0xff).rgb () -16776961 so either of your versions should work with PyQt-3.8. Looks like the sip code changed. Are you running PyQt 3.7? Jim _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde