[PyKDE] QString in PyQt4 - Request for Comments
Gerard Vermeulen
gerard.vermeulen at grenoble.cnrs.fr
Wed Oct 19 06:27:15 BST 2005
On Tue, 18 Oct 2005 18:24:08 +0100
Phil Thompson <phil at riverbankcomputing.co.uk> wrote:
> I'm wondering whether QString should be dropped in PyQt4 in order to make it
> more Pythonic.
>
> At the moment Python strings and unicode strings are automatically converted
> to QStrings when passed as arguments - so there would be no change there. If
> a QString was returned by a method or an operator then a unicode string would
> be returned instead.
>
It sounds appealing but what does it cost in memory when a QString is shared
between many other objects? If the conversion for all shared QStrings can be
impemented in constant memory, I have less reservations (sometimes I translate
between C++ and Python).
If not, it may be that PyQt becomes less interesting for certain applications
(for instance using qtsql, or with huge quantities of text). Memory footprint
does matter.
>
> Obviously you would lose all of QString's methods and would have to rely on
> what Python gives you for manipulating strings.
>
> One of the limitations of QString has been that you couldn't do...
>
> q = "Py" + QString("Qt")
>
> ...but with current snapshots you can - so this is an argument for keeping
> QString as it has become easier to use.
>
> BTW, the following is a consequence of the additional support...
>
> s = "Py"
> # s is of type str
> s += QString("Qt")
> # s is now of type QString
>
Is this really necessary (causes surprises when passing the result where
a Python string is expected)?
anInt += aFloat
# anInt is of type float
aFloat += anInt
# aFloat is of type float
Gerard
More information about the PyQt
mailing list