pygtk:如何手动发出信号

发布于 2024-10-31 14:16:39 字数 361 浏览 5 评论 0原文

我有一个 gtk.Entry() 对象,我想手动发出 focus-out-event。我需要传递给 emit 方法的第二个参数是什么?

In [10]: d.emit('focus-out-event')
TypeError: 1 parameters needed for signal focus-out-event; 0 given

In [11]: d.emit('focus-out-event', d)
TypeError: could not convert type gtk.Entry to GdkEvent required for parameter 0

I have an gtk.Entry() object, and I would like to manually emit the focus-out-event. What is the second parameter that I need to pass to the emit method?

In [10]: d.emit('focus-out-event')
TypeError: 1 parameters needed for signal focus-out-event; 0 given

In [11]: d.emit('focus-out-event', d)
TypeError: could not convert type gtk.Entry to GdkEvent required for parameter 0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哽咽笑 2024-11-07 14:16:39

您需要一个 gtk.gdk.Event作为第二个参数。

以下是创建事件的方法:(免责声明,我没有对此进行测试)

event = gtk.gdk.Event(gtk.gdk.FOCUS_CHANGE)
event.window = entry.get_window()  # the gtk.gdk.Window of the widget
event.send_event = True  # this means you sent the event explicitly
event.in_ = False  # False for focus out, True for focus in

您可以在我上面链接到的页面上查找不同类型的事件以及它们需要哪些参数。

You need a gtk.gdk.Event as the second parameter.

Here's how you create one: (disclaimer, I didn't test this)

event = gtk.gdk.Event(gtk.gdk.FOCUS_CHANGE)
event.window = entry.get_window()  # the gtk.gdk.Window of the widget
event.send_event = True  # this means you sent the event explicitly
event.in_ = False  # False for focus out, True for focus in

You can look up the different types of event and what parameters they require on the page I linked to above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文