首页 > 解决方案 > GTK+ 中的 GObject 覆盖信号

问题描述

我想我会尝试更新我在网上找到的程序(PyGTK 中的信号和事件),说明如何覆盖子类中的信号。这是我的版本:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject

class PyApp(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)

        self.set_size_request(200, 150)
        self.set_position(Gtk.WindowPosition.CENTER)
        self.show_all()

        self.connect("destroy", Gtk.main_quit)

    @GObject.SignalOverride
    def configure_event(self, *args):
        pass

    def do_configure_event(self, event):
        title = "%s, %s" % (event.x, event.y)
        self.set_title(title)
        Gtk.Window.do_configure_event(self, event)

PyApp()
Gtk.main()

我明白了

TypeError:参数事件:预期 Gdk.EventConfigure,但得到了 gi.overrides.Gdk.Event

从调用 super 的 do_configure_event 的行开始。知道我做错了什么吗?我正在使用 PyGObject 3.29.2.dev0 和 Python 3.7.0。

标签: python-3.xgtk3pygobjectgobject

解决方案


推荐阅读