Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Gtk2 + GladeXML

by rbutcher (Beadle)
on Jul 27, 2004 at 11:06 UTC ( [id://377699]=note: print w/replies, xml ) Need Help??


in reply to Gtk2 + GladeXML
in thread Best GUI package for Perl ?

"I used to churn code based on Tk, and this code was a real spaghetti, gui stuff mixed with actions mixed with logic ... horrible"... !! Thanks Eyck and all the other guys for your feedback. I just finished my first effort with Perl/Tk and I ended up with 600 lines that look just as you describe above, even though I think I understand the event handler concept... I just couldn't separate stuff like freezing/unfreezing buttons, from stuff to fire up and monitor the background process (via 'After' callback), from stuff to load and validate parameter files, from error handling (very important that absolutely any problem must produce coherent output), from stuff to cleanup zombies on process cancellation... horrible. I got Perl/Tk to do everything I wanted, but it is unmaintainable code. So big plus and big minus. Anything out there to force some function separation into Perl/Tk ? Meantime I'm looking at Perl/Qt (nice looking design tools, but what a name - Puic !?). Then I'll look at Glade/Gtk, sounds interesting. thanks & regards Rod

Replies are listed 'Best First'.
Re^2: Gtk2 + GladeXML
by eserte (Deacon) on Jul 27, 2004 at 12:22 UTC
    You're asking for function separation in Perl/Tk? Well, just do it! It's the same as in normal non-GUI programming. You can use subroutines, you can use modules. Granted, there are some nice features in Tk which allows for writing quick scripts (e.g. -variable, anon subroutines in command bindings), but nobody forces you to use these features.

    This is just like people complaining about Perl to lead to unmaintainable code. You can write unmaintainable code in both Perl and Perl/Tk, but you can also write nice code if you use the language and module wisely.

      What you propose is rewriting GladeXML but using perl instead of xml for interface description.

      And where are those tools that would allow drawing GUI with your proprietary perl interface?

      The problem is that GUI requires different style of thinking/coding then general problems ( that's one of the reasons why GUI programmers tend to think that OOP is so great - o yeah, it's great for writing GUIs, not always so great for solving general problems )

        What you propose is rewriting GladeXML but using perl instead of xml for interface description.
        I fail to see what's the advantage of writing
        <child> <widget class="GtkTextView" id="text1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="justification">GTK_JUSTIFY_LEFT</propert +y> <property name="wrap_mode">GTK_WRAP_WORD</property> <property name="cursor_visible">True</property> </widget> </child>
        instead
        $parent->TextView( Name => "text1", -visible => 1, -editable => 1, -justification => "left", -wrap_mode => "word", -cursor_visible => 1, );
        And where are those tools that would allow drawing GUI with your proprietary perl interface?
        Tcl/Tk was written to make it easy to write GUIs with just a text editor, and Perl/Tk is comparable. Some people may not be comfortable with this approach, but some are.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (2)
As of 2024-04-19 19:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found