in reply to Re: Verbose Tk Code
in thread Verbose Tk Code
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
PS: zentara where are you? :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Verbose Tk Code
by Discipulus (Canon) on Feb 28, 2021 at 19:31 UTC | |
I'm obviously not an expert, but waiting for zentara to awake from his oak you can have my humble opinion. Corion is right: if you have a case where repetition is needed providing some %default is better tan nothing and suffices. The real problem is that writing a GUI is verbose. My best Tk program is tartaglia's triangle experiment. The interface is clear for my taste but as you can see there are ~70 lines of pure verbose Tk code. Ok I have a lot of -side => 'left',-expand => 1,-padx=>5 but it adds nothing to me if I have some shortcut for this, not even in the Corion's simple way. Why? Because I generally cut and paste my own code. Then you can have very sligth differences: nowadays I'm playing with yet another Tk and GD application: look at its init_control_window sub: I'm packing bigger frames with the border and then inside them I put othere smaller frames expanding horizontally, but first and last subframes also need -pady => 5 to look nicer. In the same way if you want something to be packed at -side => 'right' and you want it to not be too much to the border, then the first element (right aligned elements must be packed in reverse order) need a different -padx value. And so on. So in my humble opinion Tk is already complicated this way and some shortcut as in your example can make it even less redable.
L*
There are no rules, there are no thumbs.. Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS. | [reply] [d/l] [select] |
by LanX (Saint) on Feb 28, 2021 at 20:07 UTC | |
thanks for the code links. > if you have a case where repetition is needed providing some %default is better tan nothing and suffices. The example in the OP had only one method, the point of with is to handle many different methods on the same object. with is available in many languages, tho Tk might be the wrong field for applying it. The other default options were optional, but it surprised me a lot that Tk needed it. Must be related to the TCL brige. > Why? Because I generally cut and paste my own code. Well, personally I prefer DRY over boilerplating, but YMMV. I looked into your code, and I see plenty of possibilities to improve readability. may I suggest:
instead of many instances of
same for other methods. Please note that you can
> Corion is right: TIMTOWTDI ... but YMMV :)
Cheers Rolf
updateimproved code for method-wrapper. | [reply] [d/l] [select] |
|
Re^3: Verbose Tk Code
by tybalt89 (Monsignor) on Feb 28, 2021 at 20:47 UTC | |
I've lately been doing things like this
which is a section from my chess player on RosettaCode https://rosettacode.org/wiki/Chess_player#Perl
and I probably would do the same kind of thing for those five Labels.
| [reply] [d/l] [select] |
by LanX (Saint) on Feb 28, 2021 at 20:52 UTC | |
> One might consider for to be a perl approximation of with :) yep, I was also thinking of offering a $_ default
Tho your example didn't alias the objects but the attributes. But Tk might not be the best use case here, Choroba privately suggested to look at XML::LibXML .
Cheers Rolf | [reply] [d/l] |