Я знаю, что могу реализовать несколько отмену, используя виджет TextUndo. Но это не делает функцию повтора.Множественный откат/повтор в прокрученном увеличенном
Как я могу реализовать как множественные отмены, так и множественные повторы?
Я знаю, что могу реализовать несколько отмену, используя виджет TextUndo. Но это не делает функцию повтора.Множественный откат/повтор в прокрученном увеличенном
Как я могу реализовать как множественные отмены, так и множественные повторы?
Виджет text
поддерживает полную функциональность отмены/повтора. Вам просто нужно включить его; поскольку не все виды использования text
хотят такого рода вещи, это по умолчанию отключено. Чтобы включить его, вам просто нужно установить для параметра boolean -undo
значение true. Это так же просто (хотя способ, которым вы его пишете, может немного отличаться на других языках, кроме Tcl, например, это undo
в Tkinter).
Однако PerlTk похоже запутывается в беспорядок. По какой-то причине виджет Tk::Text
не поддерживает отмену/повтор (почему? Механизм там, выкапывает.), А виджет Tk::TextUndo
не имеет возможности повторного использования (почему это было бы опущено?) Все это ограничения в PerlTk, а не сам Tk. В этом случае лучшим выбором может быть класс Tk::Text::SuperText
, хотя для меня это очень странно, поскольку он просто делает то, что я считаю основным функциональностью Tk.
Возможно, это устаревшая документация CPAN.
Проблема заключается в том, что «» связывания назначается дважды, для виртуального события «<>» (для реализации Emacs-как склеивание) и к виртуальному событию «<>». A нормальный Tk::Text
не имеет функции отмены, поэтому наличие привязки C-y
имеет смысл. К сожалению, эта привязка сталкивается при использовании Tk::TextUndo
.
У вас есть следующие возможности:
C-y
переплет для <<Paste>>
глобально, например с помощью: $mw->eventDelete('<<Paste>>', '<Control-Key-y>');
Я не знаю, как это может быть решена лучше всего в самом источнике Perl/Tk. Проще всего было бы удалить привязку ключа emacs для '<>' здесь, но тогда пользователи emacs могут быть недовольны. Я открыт для предложений ...
Можете ли вы вводить команды Tcl, как вы можете делать с Tkinter? –