2016-05-24 17 views
2

私はテキストエディタを作成しており、 "挿入"キーが押されたことをユーザに知らせるために使います。perl Tk :: Textウィジェットの挿入カーソルを制御するには?

私は、次のクリックされたcharの描画位置を示す "insert cursor"(通常は点滅する| char)を操作する方法を探しています。例えば

は、 "挿入" モードでカーソルが点滅してパイプになりますが( |

"オーバーライド" モードで

(ユーザーが Ctrlキー + INSをクリック): (_

ウェブを検索しているときに、マウスカーソルを操作するための例が出てきましたが、挿入カーソルを操作する方法はありませんでした。

答えて

0

テキストウィジェットでconfigureを使用してカーソルイメージを変更できませんでした。しかし、カーソルの背景形状を変更することができます。たとえば、挿入モードがアクティブな場合、カーソルは赤色になり、挿入モードがオフの場合、カーソルは黒色になります。

use strict; 
use warnings; 
use Tk; 

my $mw = new MainWindow; 

my $text = $mw->Text(qw/-width 40 -height 10/)->pack; 
my $current_color = "black"; 
$text->configure(-insertbackground => $current_color); 
$text->configure(-cursor => "arrow"); 
my $button = $mw->Button(-text => "Quit", -command => sub { exit })->pack; 
$text->bind('<Insert>', \&change_cursor); 
MainLoop; 

sub change_cursor { 
    $current_color = $current_color eq "black" ? "red" : "black"; 
    $text->configure(-insertbackground => $current_color); 
} 
+0

回避策はタグを使用するように思われます。[簡単な方法はありますかTkinter Textウィジェット用のブロックカーソルを作る?](http://stackoverflow.com/questions/24290393/is-there-an-easy-way-to-make-a-blocky-insert-cursor-for- -Tkinter-text-widget) –

+0

これは面白いアプローチですが、それはユーザーがほとんど見られません(挿入カーソル "|"の色を変更するだけです) – NirMH

関連する問題