jaguilar
09-20-2010, 06:59 PM
Is there a way to use LibIconIc in an Qt Python program?
This code runs ok:
#!/usr/bin/python2.5
import conic
import gobject, dbus
from dbus.mainloop.glib import DBusGMainLoop
def connection_cb(connection, event):
print "connection_cb(%s, %s)" % (connection, event)
status = event.get_status()
error = event.get_error()
iap_id = event.get_iap_id()
bearer = event.get_bearer_type()
if status == conic.STATUS_CONNECTED:
print "(CONNECTED (%s, %s, %i, %i)" % (iap_id, bearer, status, error)
elif status == conic.STATUS_DISCONNECTED:
print "(DISCONNECTED (%s, %s, %i, %i)" % (iap_id, bearer, status,error)
elif status == conic.STATUS_DISCONNECTING:
print "(DISCONNECTING (%s, %s, %i, %i)" % (iap_id, bearer, status,error)
if __name__ == "__main__":
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
connection = conic.Connection()
connection.set_property("automatic-connection-events", True)
connection.connect("connection-event", connection_cb)
gobject.MainLoop().run()
But if I change it for Qt (using DbusQtMainLoop and QCoreApplication instead of DbusGMainLoop and gobject), I receive a segmentation fault.
This code runs ok:
#!/usr/bin/python2.5
import conic
import gobject, dbus
from dbus.mainloop.glib import DBusGMainLoop
def connection_cb(connection, event):
print "connection_cb(%s, %s)" % (connection, event)
status = event.get_status()
error = event.get_error()
iap_id = event.get_iap_id()
bearer = event.get_bearer_type()
if status == conic.STATUS_CONNECTED:
print "(CONNECTED (%s, %s, %i, %i)" % (iap_id, bearer, status, error)
elif status == conic.STATUS_DISCONNECTED:
print "(DISCONNECTED (%s, %s, %i, %i)" % (iap_id, bearer, status,error)
elif status == conic.STATUS_DISCONNECTING:
print "(DISCONNECTING (%s, %s, %i, %i)" % (iap_id, bearer, status,error)
if __name__ == "__main__":
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
connection = conic.Connection()
connection.set_property("automatic-connection-events", True)
connection.connect("connection-event", connection_cb)
gobject.MainLoop().run()
But if I change it for Qt (using DbusQtMainLoop and QCoreApplication instead of DbusGMainLoop and gobject), I receive a segmentation fault.