[PyQt] QtDBus: Unable to convert Array of Object Paths
Chris Mayo
cjmayo at users.sourceforge.net
Sun Nov 27 12:58:27 GMT 2011
On 27/11/11 12:51, Phil Thompson wrote:
> On Sun, 27 Nov 2011 12:47:09 +0000, Chris Mayo
> <cjmayo at users.sourceforge.net> wrote:
>> With PyQt-x11-gpl-snapshot-4.9-e8284ed41e49,
>> sip-4.13.1-snapshot-3b44dc2f0efd and:
>>
>> bus = QtDBus.QDBusConnection.systemBus()
>> iface = QtDBus.QDBusInterface('org.freedesktop.UDisks',
>> '/org/freedesktop/UDisks', 'org.freedesktop.UDisks', bus)
>>
>> print(iface.call('EnumerateDeviceFiles').arguments())
>> print(iface.call('EnumerateDevices').arguments())
>>
>>
>> the end of the output is:
>>
>> 0000:00:1f.2-scsi-5:0:0:0-part2', '/dev/fd0']]
>> Traceback (most recent call last):
>> File "./objectpath.py", line 10, in<module>
>> print(iface.call('EnumerateDevices').arguments())
>> TypeError: unable to convert a C++ 'QDBusArgument' instance to a Python
>> object
>>
>>
>> EnumerateDeviceFiles returns an Array of Strings, but EnumerateDevices
>> returns an Array of Object Paths
>>
> http://hal.freedesktop.org/docs/udisks/UDisks.html#UDisks.EnumerateDevices
>>
>> Python 3.2.2, Qt 4.7.4, udisks 1.0.4, dbus 1.4.16 on amd64 Linux
>
> Can you send me a complete test case?
>
> Thanks,
> Phil
That was it! Nearly anyway, in full:
#!/usr/bin/python
from PyQt4 import QtDBus
bus = QtDBus.QDBusConnection.systemBus()
iface = QtDBus.QDBusInterface('org.freedesktop.UDisks',
'/org/freedesktop/UDisks', 'org.freedesktop.UDisks', bus)
print(iface.call('EnumerateDeviceFiles').arguments())
print(iface.call('EnumerateDevices').arguments())
Chris
More information about the PyQt
mailing list