通知按钮未在按钮小部件中触发

时间:2013-02-15 05:09:47

标签: emacs elisp

我正在使用alist创建一个小部件,虽然小部件(通过for循环创建)正确显示,但:notify指令从不处理。我无法解释。

 (widget-create (get-data (author score num_comments title subreddit) a 
            (list 'push-button
              :action (lambda (&rest ignore)
                    (message "test"))
              :post-id n
              :reddit-author author
              :reddit-score score
              :reddit-comments num_comments
              :reddit-title title
              :reddit-subreddit subreddit
              (format "%s" author))))

我还试图从头开始创建一个小部件,并且还忽略了notify指令;

 (widget-create 'push-button 
   :notify (lambda (&rest ignore) 
             (message "trigger")) 
   "click me")

我还读到 action 关键字与notify类似,所以我试了一下。什么都没发生。

有人能指出正确的方向吗?

2012-06-10关于MARVIN的GNU Emacs 24.1.1(i386-mingw-nt6.2.9200)

1 个答案:

答案 0 :(得分:0)

想出来。事实证明,您必须将它们的关键映射设置为窗口小部件才能使此功能正常工作。有道理,我根本没有看到这部分文档。如果您使用自己的键盘映射,那么您可以将widget的键盘映射作为父键,如下所示:

(defvar your-mode-map
  (let ((map (make-sparse-keymap)))
    (set-keymap-parent map widget-keymap)
    (define-key map "q" 'your-quit)
    map)
  "Custom key map")