#!/usr/bin/python2
from PyKDE4.akonadi import *
from PyKDE4.kdecore import *
from PyQt4.QtCore import *
import sys
def fetch(job):
print "plop"
if job.error(): print job.errorString()
else: print "prout"
mimeTypes = QStringList()
mimeTypes.append("application/x-vnd.akonadi.calendar.todo")
mimeTypes.append("application/x-vnd.akonadi.calendar.event")
scope = Akonadi.CollectionFetchScope()
scope.setContentMimeTypes(mimeTypes)
fetchJob = Akonadi.CollectionFetchJob(Akonadi.Collection.root(), Akonadi.CollectionFetchJob.Recursive)
fetchJob.setFetchScope(scope)
fetchJob.result.connect(fetch)
fetchJob.start()
app = QCoreApplication(sys.argv)
app.exec_()
Bonjour, j'essaye de faire fonctionner ce bout de code sans succès :(
La fonction fetch ne semble pas appelée (sauf si je vire app.exec_() mais du coup j'ai une erreur inconnue "print job.errorString()").
Si quelqu'un sait ou je me plante ...
# slot sur une fonction
Posté par Octabrain . Évalué à 2.
Disclaimer: je ne connais pas akonadi, je n'utilise pas kde
Peut-être c'est possible avec pyqt/pyside, mais en Qt/C++, il n'est pas possible d'avoir un slot sur une fonction qui ne se trouve hors d'une classe héritant QObject. Ta fonction fetch n'est même pas dans une classe.
Essaye comme ça :
Essaye peut-être aussi de créer la QCoreApplication avant tout le reste.
[^] # Re: slot sur une fonction
Posté par gnumdk (site web personnel) . Évalué à 2.
Ca ne fonctionne pas non plus mais merci quand meme ;)
[^] # Re: slot sur une fonction
Posté par Tonton Benoit . Évalué à 3.
Comme le dit Octabrain il fait créer l'objet de l'application avant le reste et comme le dit le site de KDE QApplication n'est pas substituable à KApplication !
Comme ça ça a l'air de marcher :
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.