> >>> If I try something like:
> >>> $g_widgets{EntryTheme} =
> Tkx::ttk__style_configure("Red.TEntry",
> >>> -background => "red");
> >>> I get:
> >>> invalid command name "ttk::style" at ...
> >>> I took the ttk__style_configure() from the tutorial at
> >>> http://www.tkdocs.com/tutorial
> >>
> >> That works for me. Are you still using the older Tkx? Do
> you have
> >> the 'tile' package in use in that case? I would recommend
> using the
> >> latest ActivePerl though to keep it most consistent with docs and
> >> examples that will mostly be Tk 8.5 based.
> >>
> > I'm using Perl 5.8.8, with Tk 8.4.15. Is there support for
> specifying
> > and using a different style in 8.4.15?
>
> Try just using the 'style' command. I believe that version
> may preceed 'style' being placed in the ttk namespace. The
> docs for tile's style are at
> http://tktable.sourceforge.net/tile/doc/style.html
> and if you look at the 2004 PDF referenced, I see that style
> was not namespaced at the time.
>
> Jeff
>
Again, I'm not very good at converting from tcl to Perl. Is there an
example of changing the style of an entry? Here's what I have so far,
and it will change the button, but not the entry widgets:
use strict;
use Tkx;
Tkx::package_require("tile");
Tkx::package_require("style");
my $mw = Tkx::widget->new(".");
my $text1 = "hello world";
my $text2 = "2nd entry widget";
my $entry1 = $mw->new_ttk__entry(-width => 20, -textvariable =>
\$text1);
$entry1->configure(-font => "helvetica 24 bold");
$entry1->g_grid(-column => 0, -row => 0, -sticky => 'w');
my $entry2 = $mw->new_ttk__entry(-width => 20, -textvariable => \$text2,
-style => "Dss.TEntry");
$entry2->configure(-font => "helvetica 24 bold");
$entry2->g_grid(-column => 0, -row => 1, -sticky => 'w');
my $button = $mw->new_ttk__button(-text => "Push Me");
$button->g_grid(-column => 0, -row => 2);
print "style_theme_names: " . Tkx::style_theme_names() . "\n";
#print "current theme: " . Tkx::current_theme() . "\n";
print "style_layout for TButton: " . Tkx::style_layout('TButton') .
"\n";
print "style_layout for TEntry: " . Tkx::style_layout('TEntry') . "\n";
#print "style_layout for entry2: " . Tkx::style_layout($entry2) . "\n";
Tkx::style_theme_use("alt");
print "style_lookup for TButton, -font: " . Tkx::style_lookup('TButton',
'-font') . "\n";
#print "style_element_options for Button.label: " .
Tkx::style_element_options('Button.label') . "\n";
print "button text: " . $button->cget(-text) . "\n";
print "get info about text option: " . $button->configure(-text) . "\n";
#print "splitlist: " . Tkx::SplitList($button->configure(-text)) . "\n";
#print "get info on all options: " . $b->configure . "\n";
Tkx::style_configure("TButton", -font => "helvetica 24");
Tkx::style_configure("TEntry", -background => "red", -font => "Courier
10");
#Tkx::style_configure("TEntry", -font => "courier 10");
#$entry2->configure(-style => "Red.TEntry");
Tkx::style_configure("Dss.TEntry", -background => "red", -font =>
"Courier 10");
Tkx::after(3000, sub { AfterDelay(); });
Tkx::MainLoop();
sub AfterDelay
{
Tkx::style_configure("TButton", -font => "courier 10");
Tkx::style_configure("TEntry", -font => "courier 10");
$button->configure(-text => "Hello");
$text2 = "in AfterDelay";
Tkx::after(3000, sub { AfterDelay2(); });
}
sub AfterDelay2
{
$text2 = "in AfterDelay2";
Tkx::style_map("TEntry",
-background => ["disabled" => "red", "active" =>
"blue"],
-foreground => ["disabled" => "yellow", "active" =>
"green"]);
}