[PyKDE] QString in PyQt4 - Request for Comments

Yann Cointepas yann at sapetnioc.org
Tue Oct 18 22:59:56 BST 2005


Le Mardi 18 Octobre 2005 21:53, Simon Edwards a écrit :
> On Tuesday 18 October 2005 20:01, Yann Cointepas wrote:
> > Le Mardi 18 Octobre 2005 19:24, Phil Thompson a écrit :
> > > I'm wondering whether QString should be dropped in PyQt4 in order to
> > > make it more Pythonic.
> >
> > Would it mean that QString content would always be copied when used in
> > Python ? If yes, copying a QString from a widget to another (for example
> > widget1.setCaption( widget2.caption() ) ) would lead to an unnecessary
> > copy.
>
> True, but how often do you copy a string from one widget to another? I'm
> guessing almost never (never= not often enough to worry about, or be
> performance critical).
> The only place that copying might be an issue is in something like Qt's XML
> parser. Otherwise I say drop QString. The whole "add str()" thing is a pain
> in the ass and leads to subtle bugs (espically when you use strings as keys
> in dictionaries).
>
> cheers,

If it means that the too few people that may care about the copy cost should 
be ignored then QString can be dropped. However, there is a simple case where 
the copy can be a problem. I use QTextEdit in a kind of log system (adding 
text line by line). If QString is dropped, textEdit.setText( textEdit.text() 
+ newLine ) will copy the text twice. For big text, it could be a problem. I 
am not a QString protector (I also had some problems with it at the begining) 
but I say we should think twice before removing it.

-- 
Yann Cointepas                         Tel: +33 1 69 86 78 52
CEA - SHFJ                             Fax: +33 1 69 86 77 86
4, place du Général Leclerc
91401 Orsay Cedex France




More information about the PyQt mailing list