2009-06-18 8 views
0

Dans la bibliothèque QT4, QFileSystemWatcher est censé émettre un signal "fileChanged" lorsque le fichier surveillé est modifié. Toutefois, sous ruby1.8 "fileChanged" est signalé comme "No such signal". FileSystemWatcher est clairement là. Je peux y ajouter des fichiers et relire la propriété des fichiers; c'est juste que le signal modifié ne semble pas être défini. FileSystemWatcher n'est inclus dans aucun des exemples installés.QT4 QFileSystemWatcher utilisant Ruby

Voilà ma ligne de code qui tente de relier le signal:

connect(self, SIGNAL('fileChanged()'), self, SLOT('mywatcher_changed()')) 

"soi" est une classe dérivée de Qt :: FileSystemWatcher.

Est-ce implémenté et si oui, comment l'utilise-t-on?

Merci.

Répondre

2

Le contenu du signal et de l'emplacement doit être la signature de la méthode C++, y compris les types d'arguments. C'est pourquoi votre signal n'est pas trouvé.

Probablement, il devrait être:

connect(self, SIGNAL('fileChanged(QString path)'), 
    self, SLOT('mywatcher_changed(QString path)')) 

ou

connect(self, SIGNAL('fileChanged(const QString & path)'), 
    self, SLOT('mywatcher_changed(const QString & path)')) 

Je ne suis pas sûr que l'on est correct parce que je ne me souviens pas si vous avez besoin d'inclure le « const » et "&" dans le nom du signal. Pour plus d'informations: qtruby doc

+0

Merci. Ça a marché. Connect (self, SIGNAL ('fileChanged (QString)'), self, SLOT ('mywatcher_changed (QString)')) Nastily, rbqtapi ne signale aucune méthode QFileSystemWatcher disponible mais ils semblent être là néanmoins. –