Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在perl Tk::Text小部件中控制插入光标?_Perl - Fatal编程技术网

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

如何在perl Tk::Text小部件中控制插入光标?,perl,Perl,我正在编写一个文本编辑器,并希望标记用户已按下“插入”键 我正在寻找一种方法来操纵“插入光标”(通常是闪烁的|char),指示下一个单击的char的绘图位置 e、 g 在“插入”模式下:光标将是一个闪烁的管道(|) 当处于“覆盖”模式时(用户单击Ctrl+INS):光标将闪烁下划线(\uu) 在搜索web时,我遇到了许多操作鼠标光标的示例,但没有一个是关于操作插入光标的。我无法使用文本小部件上的配置更改光标图像。但是光标的背景形状可以改变。例如,当“插入模式”处于活动状态时,光标可以是红色,而当

我正在编写一个文本编辑器,并希望标记用户已按下“插入”键

我正在寻找一种方法来操纵“插入光标”(通常是闪烁的
|
char),指示下一个单击的char的绘图位置

e、 g

在“插入”模式下:光标将是一个闪烁的管道(
|

当处于“覆盖”模式时(用户单击Ctrl+INS):光标将闪烁下划线(
\uu


在搜索web时,我遇到了许多操作鼠标光标的示例,但没有一个是关于操作插入光标的。

我无法使用文本小部件上的
配置
更改光标图像。但是光标的背景形状可以改变。例如,当“插入模式”处于活动状态时,光标可以是红色,而当“插入模式”处于关闭状态时,光标可以是黑色:

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);
}
使用严格;
使用警告;
使用传统知识;
my$mw=新的主窗口;
我的$text=$mw->text(qw/-宽40-高10/)->包装;
my$current\u color=“黑色”;
$text->configure(-insertbackground=>$current\u color);
$text->configure(-cursor=>“arrow”);
my$button=$mw->button(-text=>“Quit”,-command=>sub{exit})->pack;
$text->bind(“”,\&change\u光标);
主回路;
子更改光标{
$current\u color=$current\u color eq“黑色”?“红色”:“黑色”;
$text->configure(-insertbackground=>$current\u color);
}

一种解决方法似乎是使用标记,请参见:虽然这是一种有趣的方法,但用户几乎看不到(它只是更改插入光标“|”的颜色)