2009-06-18 9 views
0

QT4ライブラリで、QFileSystemWatcherは、監視対象ファイルが変更されたときに "fileChanged"信号を出力することになっています。Rubyを使用したQT4 QFileSystemWatcher

しかし、ruby1.8では "fileChanged"は "No such signal"と報告されます。 FileSystemWatcherははっきりとあります。私はそれにファイルを追加し、ファイルのプロパティを読み取ることができます。変更された信号が定義されていないように見えるだけです。

FileSystemWatcherは、インストールされているいずれの例にも含まれていません。ここで

は信号をアップリンクしようとコードの私のラインです:

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

「自己」のQt :: FileSystemWatcherから派生したクラスです。

これは実装されていますか?もしそうなら、どのように使用しますか?

ありがとうございました。

答えて

2

シグナルとスロットの内容は、引数のタイプを含むC++メソッドのシグネチャでなければなりません。これが信号が見つからない理由です。

おそらく、それは次のようになります。

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

または

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

私は、私はあなたが「ポーラ」含める必要がある場合は覚えていないので正しいかどちらかわかりません信号名に「&」と表示されます。

詳細については、をご覧ください。qtruby doc

+0

ありがとうございました。それはうまくいった。 connect(self、SIGNAL( 'fileChanged(QString)')、self、SLOT( 'mywatcher_changed(QString)') Nastily、rbqtapiは利用可能なQFileSystemWatcherメソッドを報告しませんが、彼らはそれにもかかわらずそこにいるようです。 –

関連する問題