http://qs321.pair.com?node_id=585322


in reply to Line up Calendar

I'd look for existing solutions before rolling my own, since calendars are hard to get "just so". How about starting with Tk::Month?

Update for posterity: Don't use Tk::Month. It has limited functionality and doesn't appear to have been maintained in some time. I gave the above advice based on an optimistic appraisal of the module after doing a quick search on CPAN and looking at the docs.

Update: It works fine. Just keep it simple:

#!/usr/bin/perl use warnings; use strict; use Tk; use Tk::Month; my $mw = MainWindow->new(); my $month = "November"; my $year = "2006"; my $m = $mw->Month( -printformat => '%a %e', -includeall => 0, -month => $month, -year => $year, -command => sub { my ($ym, $wd) = @_; my ($month, $year) = split( /\s+/ , $ym ); my ($wday, $date) = split( /\s+/ , $wd->[0] ); print "$wday, $month $date $year\n"; }, ); $m->pack; MainLoop;

Replies are listed 'Best First'.
Re^2: Line up Calendar
by mikasue (Friar) on Nov 21, 2006 at 18:33 UTC
    How do you use Tk::Month? This code just hangs...
    use strict; use warnings; use Tk; use Tk::Month; my $MW = MainWindow->new(); $MW->geometry('300x200+50+50'); my $m = $MW->Month( -month => 'November', -year => '2006', -title => '%b %y', -command => \&press, -printformat => '%e', -navigation => [0|1], -includeall => [0|1], -showall => [0|1], -first => [0|1|2|3|4|5|6], )->pack(); MainLoop;

      I don't get hanging, but I don't get a nice calendar either. It looks like Tk::Month is old, unmaintained, and broken. Too bad, because it looks like it might have been just the thing.

      Back to the drawing board.

      You want to show a calendar, but what purpose does it serve? Are you trying to do anything with the calendar, or just show the dates of the current month as a reference point?

      Update: I was throwing too much code at it. Tk::Month works fine if I keep it simple. See my original reply to this thread for details.