[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: Re: [PyKDE] QByteArray and unicode
From: Jim Bublitz <jbublitz () nwinternet ! com>
Date: 2005-12-24 8:40:18
Message-ID: 200512240040.19070.jbublitz () nwinternet ! com
[Download RAW message or body]
On Friday 23 December 2005 11:11, Orcan Ogetbil wrote:
> Hi,
> using the following code, I can get the track title that's being played in
> amarok.
>
> [code]
> import dcop
>
> dcopclient = dcop.DCOPClient()
> dcopclient.registerAs("amarokapp")
> dcopclient.rc = dcop.DCOPRef("amarok", "player")
>
> result = dcopclient.rc.call("title()")
> title = result.data.data()
>
> print title
> [/code]
>
> The problem is, when the track title contains non-ascii characters, they
> are not displayed properly.
>
> The 'result' is a QByteArray object,
> 'result.data.data()' is a ascii python string
>
> How and where should I set the encoding to display the track title
> properly? (and how do I convert the QByteArray object to a unicode QString
> object?)
Take a look at PyKDE/doc/dcopext.html or examples/example_dcopext.py. PyKDE
doesn't support the method you're using (but see below), because there's no
easy way to convert the QByteArray to the appropriate object type using
Python.
title () should return a QString, and using the method outlined in the docs
will get you a QString from title (). The code that does it is in
extensions/dcopext.py and uses the dcop_add and dcop_next methods coded in
C++ and compiled as part of sip/kdecore/bytearray.sip - you could use those
methods in your own code if you want to duplicate the Python code in
dcopext.py.
Jim
_______________________________________________
PyKDE mailing list PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic