PyGObject中pyqtsignal的等效值是什么?

2024-10-04 03:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些python代码正在尝试从Qt转换到Gtk。我是Gtk的新手,对Qt没有经验。python中有几行代码在Qt中创建了新的信号,我想将它们转换为Gtk。代码如下:

fpssig = pyqtsignal(float)

稍后,会有一个连接到回调函数的连接。对不起,我这里没有具体的代码。你知道吗

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

谢谢。你知道吗


Tags: 函数代码gtk信号经验floatqtpygtk
2条回答

嗯,我想出来了。谢谢你的回复。我试图覆盖
____gsignals___
我的属性Gst.管道对象。每次我试图创建对象时,它总是被重置为“{}”。我最终为信号创建了一个单独的类。你知道吗

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对象时,我会创建signals对象:

        self.pipesignals = PipeSignals()

我连接到其中一个:

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

并在时机成熟时发出信号:

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

我更新了我在\u fps \u update()上的状态栏。你知道吗

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

你的标签不是很清楚,如果你是指pygobject或pygtk。你知道吗

如果你是说pygobject,请看:https://python-gtk-3-tutorial.readthedocs.org/en/latest/objects.html#signals

相关问题 更多 >