Perl Tk代码,无需用户干预即可将鼠标从一个位置移动到另一位置

问题描述 投票:0回答:1

我显然只是一个新手,可以使用一些帮助。我试图写一些linux perl TK代码来创建box和:1)将鼠标指针移至点A ............2)睡2秒钟..........3)将鼠标指针移到B点。

WITHOUT

用户干预。...我希望鼠标指针自行移动而不必按按钮或其他任何东西。我听说这称为翘曲,但我不知道如何编写该代码。

我这里有一些代码可以移动pmouse指针。它涉及一个按钮.........我不要按钮部分。但是我不知道如何编写代码。此外,我从其他地方获取了部分代码而且我不知道如何像上面的步骤中所述修复它。

任何帮助将不胜感激。


#!/usr/bin/perl
use Tk;

$count=0;
$m=Tk::MainWindow->new();

# create a button with a callback to do_warp
$button=$m->Button(-text => "Press Me", -command => \&do_warp);

# some filler labels so that the pointer warp is obvious
$filler1=$m->Label(-text => "           ");
$filler2=$m->Label(-text => "           ");

# this label is where the mouse pointer ends up
$l=$m->Label(-text => "Mouse ends up here");

$button->pack();
$filler1->pack();
$filler2->pack();
$l->pack();

#$m->repeat(2 => \&do_warp);

MainLoop;

sub do_warp
  {
  $count++;
  printf("COUNT=|%d|\n", $count);

  if ($count == 1)
    {
    sleep 2;
    $l->eventGenerate('<ButtonPress>',-warp => 1, -x => 10, -y => -10);
    }
  else
    {
    $count = 0;
    sleep 2;
    $l->eventGenerate('<ButtonPress>',-warp => 1, -x => 30, -y => -30);
    }
  }

我显然只是一个新手,可以使用一些帮助。我正在尝试写一些Linux perl TK代码来创建框,然后:1)将鼠标指针移到A点............. 2)睡眠2 ...

perl pointers mouse move tk
1个回答
0
投票

您在此代码中按下的按钮($button)仅是使功能do_warp运行的一种方式。编写自己的do_warp版本,以便将光标移动到所需位置,然后从主Tk部分调用do_warp,没有任何按钮。似乎您已经尝试在repeat循环中执行此操作?

© www.soinside.com 2019 - 2024. All rights reserved.