[PyQt] Different Behavior between Python 2.6 and Python 3.1.1

Demetrius Cassidy dcassidy36 at mass.rr.com
Tue Jan 12 23:52:00 GMT 2010


Stupid thunderbird messed up the formatting. use int('12345') to conver 
a string to integer. and .upper() to conver to uppercase.

Demetrius Cassidy wrote:
> *int(**self.ui.txtNumber.text()) *
> str('abcdefg').upper()
>
>
> Richard Parker wrote:
>> Demetrius,
>>
>> I think you are right, but how can I achieve the same functionality 
>> with Python 3.1.1, as I do with Python 2.6? (i.e., left(5).toUpper()) 
>> for the "str" that's returned by Python 3.1.1?
>>
>> I looked at "[0:0<5]".format(self.ui.txtText.text())" and that seemed 
>> to work, although it didn't implement the "toUpper() feature and I 
>> really need a solution that will do so. I also have another string 
>> from a QLineEdit object that I want to convert to an integer value 
>> and I had written it as follows:
>>
>> numbering =  self.ui.txtNumber.text().toInt()
>>
>> But this also fails with an error on Python 3.1.1, indicating that a 
>> "str" object has on attribute "toInt()". So, basically, I need to 
>> convert both of these to be compatible with Python 3.1.1 and I'm not 
>> sure how to do so. Any help will be appreciated.
>>
>> -rich-
>>
>> ----- Original Message -----
>> From: "Demetrius Cassidy" <dcassidy36 at mass.rr.com>
>> To: "Richard Parker" <r.richardparker at comcast.net>
>> Cc: "PYQT" <pyqt at riverbankcomputing.com>
>> Sent: Tuesday, January 12, 2010 2:49:41 PM GMT -08:00 US/Canada Pacific
>> Subject: Re: [PyQt] Different Behavior between Python 2.6 and Python 
>> 3.1.1
>>
>> I think .text() in Python 3.1 with PyQt4 is returning a python 'str'
>> object, instead of a QString. Try and do type(self.ui.txtText.text())
>> and see what it returns.
>>
>> Richard Parker wrote:
>> > I have the following statement in an application that runs fine with
>> > Python 2.6 (and PyQt):
>> >
>> >         text = self.ui.txtText.text().left(5).toUpper()
>> >
>> > In Python 3.1.1 (with PyQt), I get the following error for the first
>> > statement:
>> >
>> > "    text = self.ui.txtText.text().left(5).toUpper()
>> > AttributeError: 'str' object has no attribute 'left' "
>> >
>> >
>> > The "ui.txtText.text" object is a QLineEdit object, whose
>> > documentation indicates that its "text()" function returns a QString
>> > object, whose documentatation states that the "left(self, n)" and
>> > "toUpper() functions are supported. What has changed between Python
>> > 2.6 and Python 3.1 that would account for this error?
>> >
>> > Thanks.
>> >
>> > 
>> ------------------------------------------------------------------------
>> >
>> > _______________________________________________
>> > PyQt mailing list    PyQt at riverbankcomputing.com
>> > http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>>
>
>



More information about the PyQt mailing list