我正在使用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)
答案 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")