gpt4 book ai didi

python - 输入通知事件信号不适用于 gtk.ToolButton

转载 作者:太空狗 更新时间:2023-10-30 01:03:35 25 4
gpt4 key购买 nike

令人高兴的是(如果不是无关紧要的话),这绝对是这个特定项目中的最后一个障碍。如果我解决了这个问题,我就有了第一个重要的点版本 (1.0),并且该项目将公开。感谢 SO 上的每个人帮助我完成这个项目,以及我的另外两个项目(答案对所有方面都有帮助,这是他们应该做的)。

现在,真正的问题...

我的应用程序(Python 2.7、PyGTK)中有一个工具栏,上面有许多 gtk.ToolButton 对象。这些功能就好了。我有与它们相关的工作“点击”事件。

但是,我还需要将它们连接到“enter-notify-event”和“leave-notify-event”信号,这样我才能在状态栏中显示按钮的功能。

这是我的代码。我没有收到任何错误,但状态栏消息没有出现:

new_tb = gtk.ToolButton(gtk.STOCK_NEW)
toolbar.insert(new_tb, -1)
new_tb.show()
new_tb.connect("clicked", new_event)
new_tb.connect("enter-notify-event", status_push, "Create a new, empty project.")
new_tb.connect("leave-notify-event", status_pop)

我知道问题不在于“status_push”和“status_pop”事件,因为我已将所有 gtk.MenuItem 对象连接到它们,并且它们运行顺畅。

我知道 gtk.ToolButton 对象在 Widgets 类中,因此“enter-notify-event”和“leave-notify-event”在技术上应该有效。我唯一的猜测是这个特定对象除了“点击”之外不会发出任何信号,因此我必须将每个信号都放在一个 gtk.EventBox 中。

我在这里做错了什么?我该如何解决这个问题?

提前致谢!

最佳答案

您的猜测是正确的,您应该将小部件包装在 gtk.EventBox 中,这是一个我希望充满希望的例子:

import gtk


def callback(widget, event, data):
print event, data


class Win(gtk.Window):

def __init__(self):
super(Win, self).__init__()
self.connect("destroy", gtk.main_quit)
self.set_position(gtk.WIN_POS_CENTER)
self.set_default_size(250, 200)

tb = gtk.ToolButton(gtk.STOCK_NEW)
# Wrap ``gtk.ToolButton`` in an ``gtk.EventBox``.
ev_box = gtk.EventBox()
ev_box.connect("enter-notify-event", callback, "enter")
ev_box.connect("leave-notify-event", callback, "leave")
ev_box.add(tb)

self.add(ev_box)


if __name__ == '__main__':
Win()
gtk.main()

关于python - 输入通知事件信号不适用于 gtk.ToolButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com