在PyGObject中pyqtsignal的等价物是什么?

时间:2015-07-15 01:06:30

标签: python pyqt gtk pygobject

我有一些python代码我试图从Qt转换为Gtk。我对Gtk很新,对Qt没有经验。 python中有一些行在Qt中创建了我想要转换为Gtk的新信号。代码是这样的:

fpssig = pyqtsignal(float)

稍后,有一个连接到回调函数。抱歉,我在这里没有具体的代码。

如何在PyGtk中创建类似的信号,以便在需要时发出它?

感谢。

2 个答案:

答案 0 :(得分:0)

如果你的意思是pygobject或pygtk,你的标签就不是很清楚了。

如果您的意思是pygobject,请参阅:https://python-gtk-3-tutorial.readthedocs.org/en/latest/objects.html#signals

答案 1 :(得分:0)

好吧,我明白了。谢谢你的回复。我试过覆盖了     ____gsignals___
我的Gst.Pipeline对象中的属性。每次我尝试创建对象时,它总是重置为“{}”。我终于为信号创建了一个单独的类。

class PipeSignals(GObject.Object):
# create signals for this pipeline
__gsignals__ = {
                'updatedSourceFPS': (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_FLOAT,)),
                'updatedCaptureCount': (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_INT,)),
                'updatedCaptureTime':(GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_FLOAT,)),
                'captureFinished': (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, ()),
                'pipelineError':  (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_STRING,))
                }
def __init__(self):
    GObject.Object.__init__(self)

当我创建Pipeline对象时,我创建了信号对象:

        self.pipesignals = PipeSignals()

我用其中一个连接:

            self.pipeline.pipesignals.connect('updatedSourceFPS', self.on_fps_update)

并在时间到来时发出信号:

                    self.pipesignals.emit('updatedSourceFPS', fps)

我在on_fps_update()中更新了我的状态栏。

    def on_fps_update(self, signal, fps):
    self.statusbar.pop(self.statusid)
    self.statusbar.push(self.statusid, 'fps: {:.3f}'.format(fps))
    return