QT4 QFileSystemWatcher с использованием Ruby

В библиотеке QT4 предполагается, что QFileSystemWatcher выдает сигнал "fileChanged" при изменении отслеживаемого файла.

Однако в ruby1.8 «fileChanged» сообщается как «Нет такого сигнала». FileSystemWatcher явно там. Я могу добавить к нему файлы и прочитать свойство файлов; просто измененный сигнал не определяется.

FileSystemWatcher не включен ни в один из установленных примеров.

Вот моя строка кода, которая пытается связать сигнал:

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

«Я» — это класс, производный от Qt::FileSystemWatcher.

Реализовано ли это, и если да, то как его использовать?

Спасибо.


person Paul Bullough    schedule 18.06.2009    source источник


Ответы (1)


Содержимое сигнала и слота должно быть сигнатурой метода C++, включая типы аргументов. Вот почему ваш сигнал не найден.

Наверное, так и должно быть:

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

or

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

Я не уверен, какой из них правильный, потому что я не помню, нужно ли вам включать «const» и «&» в имя сигнала.

Дополнительную информацию см. в документе qtruby.

person Philippe F    schedule 18.06.2009
comment
Спасибо. Это сработало. Точный рабочий код оказался таким: быть там все же. - person Paul Bullough; 18.06.2009