【问题标题】:rb plugin the hot key not workingrb插件热键不起作用
【发布时间】:2011-01-05 17:27:42
【问题描述】:
def activate(self,shell):
        self.shell = shell
        self.action = gtk.Action ('foo','bar','baz',None)
        self.activate_id = self.action.connect ('activate', self.call_bk_fn,self.shell)
        self.action_group = gtk.ActionGroup ('hot_key_action_group')
        self.action_group.add_action_with_accel (self.action, "<control>E")

        uim = shell.get_ui_manager ()
        uim.insert_action_group (self.action_group, 0)
        uim.ensure_update ()
def call_bk_fn(self,shell):
                print('hello world')

我在节奏盒插件中使用上面的代码,在这里我试图注册键 ctr+e 以便在按下组合键时调用 call_bk_fn ,但它不起作用为什么会这样?

【问题讨论】:

    标签: python gtk pygtk rhythmbox


    【解决方案1】:

    我说过的一件事是你的回调应该是这样的:

    def call_bk_fn(self, event, shell):
        print('hello world')
    

    希望这可以帮助 :),如果您仍有问题,我认为您应该向我们提供有关所引发错误的更多信息。

    【讨论】:

    • @singularity,我改变了,但没有用 :(,我没有得到任何输出/错误消息 :(
    • @Bunny Rabbit:使用这个命令运行 rb rhythmbox -D filter 现在所有的错误都应该显示在你的终端上;如果您能看到它们,请将显示的错误添加到您的问题中。希望它可以帮助:)
    • @singularity 我已经在使用它了,不,我看不到任何错误,如果你怀疑插件是否处于活动状态,我也用几个打印语句进行了测试发现他们正在打印..
    • @Bunny Rabbit:我仍然不明白您的第一个代码如何没有引发任何可以输出的错误,因为 self.call_bk_fn 回调不存在,因为您已经定义了没有 self 的函数 call_bk_fn !!!!顺便说一句,我刚刚通过在回调中添加另一个参数来编辑我的答案,毕竟它非常接近 gtk 回调方式尝试这样,如果它不起作用,你可以尝试没有键盘事件,就像这个例子中一样:kryogenix.org/code/RBMicroBlog/RBMicroBlog.tar.gz 因为我有提示问题出在键盘事件加速器中。
    • @Bunny Rabbit: no but this line connect ('activate', self.call_bk_fn...) 应该会在后面的代码中引发错误,因为没有这样的 self.call_bk_fn 你明白我的意思吗?我认为,如果您能看到以某种方式引发的错​​误,并且 rb 没有显示我认为的错误,那对您来说会很棒,所以没有办法找出错误也许我错了,因为您告诉我您可以看到调试打印!!!
    猜你喜欢
    • 2016-04-05
    • 2019-04-29
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2016-05-14
    • 2014-06-04
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多