Eventhandler не позволяет мне выбирать графику, когда назначен MouseClicked - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь оцифровать точки на изображении и хотел бы использовать события KeyDown для очистки выбранных точек. Чтобы KeyDown работал, необходимо выбрать изображение, щелкнув по нему (вокруг изображения отображается оранжевая рамка). Когда назначается MouseClicked, он регистрирует точку на моем изображении, но изображение не будет выбрано, поэтому KeyDown не будет работать. Я понял, что могу выбрать изображение с помощью правой кнопки мыши. Я надеялся найти способ, чтобы код автоматически выбирал для меня изображение, как только документ будет создан. Кто-нибудь знает, как это сделать?

Это для моих исследований, чтобы я мог оцифровать расположение объектов на ультразвуковом изображении.

Я пытался использовать функцию SelectionMove [] несколькими способами, но она не работает.

CreateDocument[
  DynamicModule[
   {pnts = {}},
   EventHandler[
    Show[
     img,
     Epilog -> {Red, Point[Dynamic[pnts]]}
     ],
    {
     {"MouseClicked", 
       1} :> {AppendTo[pnts, MousePosition["Graphics"]]},
     "EscapeKeyDown" :> {pnts = {}}
     }
    ]
   ]
  ];

Он открывает изображение, и я могу размещать точки. Однако я не могу очистить их с помощью EscapeKeyDown.

мое изображение -> https://imgur.com/a/qgksuBP

1 Ответ

0 голосов
/ 21 января 2019

Похоже, что проблема неопределенно решена в документах: «Для событий мыши EventHandler [ expr , ...] обрабатывает события, для которых мышь находится в прямоугольной области, определенной отображениемвыражение «.Подразумевается, что события клавиатуры работают по-разному.

Вы можете использовать что-то вроде этого.

pnts = {};
SetOptions[CreateDocument[
   EventHandler[Show[img, Epilog -> {Red, Point[Dynamic[pnts]]}],
    {"MouseClicked", 1} :> AppendTo[pnts, MousePosition["Graphics"]]]], 
 NotebookEventActions :> {"EscapeKeyDown" :> (pnts = {})}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...