0

TextUndoウィジェットを使用して複数の取り消しを実装できることを知っています。しかし、それはやり直し機能を行いません。

複数の取り消しと複数のやり直しの両方を実装するにはどうすればよいですか?

4

2 に答える 2

0

問題は、仮想イベント '<>' (emacs のような貼り付けを実装するため)仮想イベント '<>' に対して '' バインディングが 2 回割り当てられることです。法線Tk::Textには元に戻す機能がないため、C-yここにバインドすることは理にかなっています。残念ながら、このバインディングは を使用すると衝突しTk::TextUndoます。

次の可能性があります。

  • やり直しには他のバインディングを使用します (たとえば、F12 バインディング、完全なリストについては Tk::MainWindow ソース コードを参照するか、ポップアップ メニューの「やり直し」エントリを参照してください)。
  • たとえば、次を使用して、グローバル のC-yバインディングを削除します。<<Paste>>$mw->eventDelete('<<Paste>>', '<Control-Key-y>');

Perl/Tk ソース自体でこれをどのように解決するのが最善かはわかりません。ここで '<>' の emacs キー バインディングを削除するのが最も簡単ですが、これでは emacs ユーザーが不満を抱く可能性があります。私は提案を受け入れています...

于 2014-01-26T16:17:59.457 に答える