Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Run a script as GUI using perl\tk

by knils_r00t (Novice)
on Nov 16, 2011 at 14:06 UTC ( [id://938380]=perlquestion: print w/replies, xml ) Need Help??

knils_r00t has asked for the wisdom of the Perl Monks concerning the following question:

i have a perl script and i want to execute it in gui using tk....any help i use ubuntu

i have a script say x.pl

use Tk; my $main = MainWindow->new; $main->Button(-text => 'Hello', -command => [\&printem, "Hello\n"] )->pack; $main->Button(-text => 'End', -command => [$main => 'destroy'] )->pack; MainLoop;

The above script produces two buttons.... now i want when i click any button the script x.pl executes..... plz u hv any solution

plzzz help

Replies are listed 'Best First'.
Re: Run a script as GUI using perl\tk
by jethro (Monsignor) on Nov 16, 2011 at 14:41 UTC
    sub runscript { system("x.pl"); # or if it takes some time to run the script system("x.pl &"); # runs in the background } ... -command => [\&runscript]
Re: Run a script as GUI using perl\tk
by zentara (Archbishop) on Nov 16, 2011 at 17:23 UTC
    Another option, used more often, is to run the script thru IPC and use Tk's fileevent to watch it.
    #!/usr/bin/perl use warnings; use strict; use IPC::Open3; use Tk; $|=1; my $pid=open3(\*IN,\*OUT,0,'/bin/bash'); my $mw=new MainWindow; $mw->geometry("600x400"); my $t=$mw->Scrolled('Text',-width => 80, -height => 80, )->pack; &refresh; $mw->fileevent(\*OUT,'readable',\&write_t); #keep filling the text widget my $id = Tk::After->new($mw,2000,'repeat',\&refresh); MainLoop; sub refresh{ print IN "top b n 1"; print IN "\n"; #absolutely needed and on separate line } sub write_t { my $str= <OUT>; $t->insert("1.0",$str); # $t->see("0.0"); } __END__

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://938380]
Approved by ww
Front-paged by toolic
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2024-03-28 13:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found