|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
# This is an example of how to use DCOP Signals with
|
|
|
|
# the dcoppython KDE bindings.
|
|
|
|
|
|
|
|
# something goes wrong if you don't import pcop first.
|
|
|
|
# Have to do this till I find out why...
|
|
|
|
import pcop
|
|
|
|
import pydcop
|
|
|
|
|
|
|
|
class MyObject(pydcop.DCOPServerObject):
|
|
|
|
"""DCOP server object"""
|
|
|
|
|
|
|
|
def __init__(self, id='pythontest'):
|
|
|
|
pydcop.DCOPServerObject.__init__(self, id)
|
|
|
|
|
|
|
|
# DCOP needs types, so we need to initialise the object with the methods that
|
|
|
|
# it's going to provide.
|
|
|
|
self.setMethods( [('void test(TQString)', self.test)])
|
|
|
|
|
|
|
|
def test(self, data):
|
|
|
|
print("New Weather for " + data)
|
|
|
|
|
|
|
|
appid = pydcop.registerAs('dcopSignalTest')
|
|
|
|
print("Server: %s starting" % appid)
|
|
|
|
|
|
|
|
pytest = MyObject()
|
|
|
|
|
|
|
|
sender = "KWeatherService"
|
|
|
|
senderObj = "WeatherService"
|
|
|
|
signal = "fileUpdate(TQString)"
|
|
|
|
receiverObj = "pythontest"
|
|
|
|
slot = "test(TQString)"
|
|
|
|
volatile = 1
|
|
|
|
|
|
|
|
pydcop.connectDCOPSignal(sender,senderObj,signal,receiverObj,slot,volatile)
|
|
|
|
# Enter event loop
|
|
|
|
while 1:
|
|
|
|
pydcop.processEvents()
|
|
|
|
|
|
|
|
|