RE: Colors and other questions

[email protected] ("Swingle David-QWHM86")
Newsgroups perl.tcltk
Message-ID <[email protected]>
> >>> 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"]);
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.