如何在Perl Tk :: Text小部件中控制插入光标?

时间:2016-05-24 12:07:22

标签: perl

我正在编写一个文本编辑器,并希望标记用户" insert"钥匙被按下了。

我正在寻找一种方法来操纵"插入光标" (通常是一个闪烁的|字符),表示下一个点击字符的绘图位置。

例如,

在"插入" mode:光标将是一个闪烁的管道(|

当进入"覆盖"模式(用户单击 Ctrl + INS ):光标将闪烁下划线(_

在搜索网页时,我遇到了一个操作鼠标光标的例子,但没有关于操纵插入光标的例子。

1 个答案:

答案 0 :(得分: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);
}