I am trying to use Perl's Tk module for guis. From what I understand it should be possible to generate events programatically which will then will trigger any listeners on a widget.
So i did the following:
use Tk;
my $mw = new MainWindow;
my $label = $mw -> Label(-text=>"Hello World") -> pack();
my $button = $mw -> Button(-text => "Quit");
$button->bind('<ButtonPress-1>' => \&myexit);
$button->pack;
MainLoop;
$button->eventGenerate('<ButtonPress-1>');
sub myexit
{
exit;
}
Here I create a window with a label and a button and whenever the button is clicked the program should exit. It works perfectly when actually clicking the button.
When trying to generate a click, nothing happens. I have also read about virtual events, are these a special kind of events, so that I can generate only events of that type?
What I wonder is whether I am unable to generate builtin events like keypress and such.
Any help would be very welcome.
Hmm, I just realized that maybe MainLoop is halting the entire program, thus eventGenerate is never reached. But in that case eventGenerate seems rather pointless.