Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: GUI toolkit+designer for the perl newbie

by Gangabass (Vicar)
on Sep 08, 2011 at 06:11 UTC ( [id://924728]=note: print w/replies, xml ) Need Help??


in reply to GUI toolkit+designer for the perl newbie

Tk is not outdated . Here you can find excellent TK tutorial for Perl

  • Comment on Re: GUI toolkit+designer for the perl newbie

Replies are listed 'Best First'.
Re^2: GUI toolkit+designer for the perl newbie
by Anonymous Monk on Sep 08, 2011 at 07:59 UTC

    Not to be contrary, but yes, perl/Tk (what perl programmers refer to as Tk) is outdated, and has been for at least 10 years, in relation to the toolkit it is built on, Tcl/Tk

    The tutorial you link to is for Tkx , a thin interface to Tcl, and its gui library toolkit, Tk

    Unlike Tk.pm, Tkx does not have a book or two dedicated to it, and relies mostly on Tcl/Tk documentation, which means you have to learn Tcl

    The tutorial you linked helps with the easy tcl syntax, like the Tkx docs, but as soon as you reach for the reference Tcl/Tk docs, you have to learn more Tcl syntax, so you can translate to perl.

    Tcl::pTk, like Tkx, builds on Tcl but does it with Tk.pm compatible syntax, and takes the brilliant step and exposes the Tcl interpreter, so you can Eval Tcl code directly, no need to translate to perl at all

    What Tk.pm has going for it, is years and years and years of use, many perl users, and many perl examples and cpan extensions

    What Tkx/Tcl::pTk have going for it, is years and years and years of use, many Tcl users, many tcl examples, and TEA/TEApot/TEAcup extensions

    With ActiveState/ppm/Tkx you get, a certain set of Tcl/Tk widgets, Tcl::tkkit, great for embedding via par/perlapp/perl2exe. Its mostly a one-two-click operation, but you can't add more widgets.

    If you go your own way :) you can install ActiveTcl (or other tcl distribution) and then install Tcl/Tcl::pTk||Tkx, you also get the ability, to install other widgets, like TIX, at the cost of two installations to manage, two path entries ... unless you decide which widgets you want and then build your own Tcl::kit equivalent

    So yes, that tutorial you linked, is most excellent 2) one good tut.

    If you stick to ActivePerl, Tkx is well supported by perl at minimal expense to the programmer, with an excellent but fixed set of widgets, with decent enough documentation.

    SpecTCL fills the WYSYWIG designer role nicely, but the binaries are a tad dated, built around Tk 8.4 (ActivePerl deploys with the stable 8.5 , the current beta is 8.6)

    Suitable for beginners? Yup, its a very good toehold, ought to get a beginner making short GUI programs in short order

    Hi :)

Re^2: GUI toolkit+designer for the perl newbie
by kcott (Archbishop) on Sep 08, 2011 at 09:36 UTC

    As AM points out above, in a very nice article I might add, you've linked to a tutorial whose Perl code is for Tkx. Here's a Tk version:

    use Tk; use Scalar::Util qw{looks_like_number}; my ($feet, $metres) = (q{}, q{}); my $mw = MainWindow->new(-title => q{Feet to Metres}); my $f = $mw->Frame() ->grid(-padx => 12, -pady => 3, -sticky => q{nsew}); my %pad = (-padx => 5, -pady => 5); my $feet_E = $f->Entry(-textvariable => \$feet, -width => 7) ->grid(-row => 0, -column => 1, -sticky => q{we}, %pad); $f->Label(-text => q{feet}) ->grid(-row => 0, -column => 2, -sticky => q{w}, %pad); $f->Label(-text => q{is equivalent to}) ->grid(-row => 1, -column => 0, -sticky => q{e}, %pad); $f->Label(-textvariable => \$metres) ->grid(-row => 1, -column => 1, -sticky => q{we}, %pad); $f->Label(-text => q{metres}) ->grid(-row => 1, -column => 2, -sticky => q{w}, %pad); my $calc_B = $f->Button(-text => q{Calculate}, -command => sub { $metres = looks_like_number($feet) ? int(0.3048 * $feet * 10000.0 + 0.5) / 10000.0 : q{}; })->grid(-row => 2, -column => 2, -sticky => q{w}, %pad); $feet_E->focus(); $mw->bind(q{<Return>} => sub {$calc_B->invoke()}); MainLoop;

    -- Ken

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://924728]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (3)
As of 2024-04-25 21:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found