0

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))))

また、ゼロからウィジェットを作成しようとしましたが、通知ディレクティブも無視されました。

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

actionキーワードが notify と似たようなことをすることも読んだので、試してみました。何も起こらなかった。

誰かが私を正しい方向に向けることができますか?

MARVIN 上の 2012 年 6 月 10 日の GNU Emacs 24.1.1 (i386-mingw-nt6.2.9200)

4

1 に答える 1

0

理解した。この機能を機能させるには、キーマップをウィジェットのものに設定する必要があることがわかりました。理にかなっている、私は単にドキュメントのこの部分を見ていませんでした。独自のキーマップを使用している場合は、次のように、ウィジェットのキーマップを親にすることができます。

(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")
于 2013-02-16T22:28:06.087 に答える