【问题标题】:QT4 QFileSystemWatcher using Ruby使用 Ruby 的 QT4 QFileSystemWatcher
【发布时间】:2009-06-18 22:57:46
【问题描述】:

在 QT4 库中,QFileSystemWatcher 应该在监视的文件更改时发出“fileChanged”信号。

但是,在 ruby​​1.8 下,“fileChanged”被报告为“No such signal”。 FileSystemWatcher 显然在那里。我可以向其中添加文件并读回 files 属性;只是改变的信号似乎没有被定义。

FileSystemWatcher 未包含在任何已安装的示例中。

这是我尝试链接信号的代码行:

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

“self”是一个派生自 Qt::FileSystemWatcher 的类。

这是否实现了,如果实现了,如何使用它?

谢谢。

【问题讨论】:

    标签: ruby qt4


    【解决方案1】:

    信号和槽的内容必须是 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 )') )
    

    我不确定哪一个是正确的,因为我不记得您是否需要在信号名称中包含“const”和“&”。

    查看更多信息:qtruby doc

    【讨论】:

    • 谢谢。那行得通。确切的工作代码原来是: connect(self, SIGNAL('fileChanged(QString)'), self, SLOT('mywatcher_changed(QString)') ) 令人讨厌的是,rbqtapi 没有报告任何可用的 QFileSystemWatcher 方法,但它们似乎尽管如此。
    猜你喜欢
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多