ListAnimate с элементами управления, такими как слайд-шоу - PullRequest
4 голосов
/ 14 июля 2011

Это может быть злоупотребление ListAnimate, но я использую его, чтобы пролистать кучу изображений. Когда изображений достаточно мало, я могу схватить ползунок с помощью мыши и достаточно легко переключаться между изображениями.

Но когда их слишком много, очень сложно пролистывать их один за другим. Есть ли способ просто использовать клавиши со стрелками (или любые другие клавиши), чтобы пролистывать изображения вперед и назад, как слайд-шоу?

Ответы [ 3 ]

4 голосов
/ 14 июля 2011

Вот простое слайд-шоу, управляемое с клавиатуры:

SlideShow[list_List] := 
 With[{len = Length[list]}, DynamicModule[{pos = 1}, 
      EventHandler[Dynamic[Pane[list[[pos]]]], 
                {"RightArrowKeyDown" :> (pos = Mod[pos + 1, len, 1]), 
                 "LeftArrowKeyDown" :> (pos = Mod[pos - 1, len, 1]), 
                 "UpArrowKeyDown" :> (pos = 1), 
                 "DownArrowKeyDown" :> (pos = len)}]]]

Затем вы управляете слайд-шоу, выбирая вывод и используя клавиши со стрелками:
вправо = вперед, влево = назад, вверх = первый, вниз = последний,

Например:

SlideShow[{"a","b","c","d"}]

Некоторые примеры изображений:

pics = ExampleData /@ ExampleData["TestImage"][[{1, 2, 3, 4}]]

SlideShow@pics

(* Представьте себе снимок экрана здесь *)

Это можно одеть, чтобы придать ему рамку, пуговицы и т.д ...

2 голосов
/ 14 июля 2011

Работает также следующее:

DynamicModule[{i = 1},
 EventHandler[SlideView[{a, b, c, d}, Dynamic[i]],
  {"RightArrowKeyDown" :> (i = Min[i + 1, 4]),
   "LeftArrowKeyDown" :> (i = Max[i - 1, 1])}]]
2 голосов
/ 14 июля 2011

Я только что заметил, что SlideView или FlipView будут делать именно то, что я хочу!(За исключением того, что ни один из них, кажется, не предлагает управление с клавиатуры, что было бы очень приятно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...