Ma question va vous paraitre simple mais je m'arrache les cheveux dessus
depuis une heure :(
Comment on change la couleur à l'interieur d'un labframe. J'ai réussi à
changer la couleur du background mais ce que je veux c'est changer celle à
l'interieur du cadre du labframe.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jl_morel
Dans l'article <bmrif3$m55$, online.fr a dit...
Ma question va vous paraitre simple mais je m'arrache les cheveux dessus depuis une heure :(
Comment on change la couleur à l'interieur d'un labframe. J'ai réussi à changer la couleur du background mais ce que je veux c'est changer celle à l'interieur du cadre du labframe.
Non, c'est pas simple.
On peut utiliser la méthode children pour descendre dans l'arbre des sous- widget de ce widget composé. On retrouve le widget Text et on peut utiliser dessus la méthode configure.
#!/usr/bin/perl -w use strict; use Tk; use Tk::LabFrame;
my $mw = MainWindow->new(-title => 'Exemple de LabFrame'); my $lf = $mw->LabFrame(-label => 'Label du LabFrame', -labelside => 'acrosstop', )->pack;
$lf->Text( -width => 40, -height => 5)->pack;
my ($t) = (($lf->children)[0]->children)[1]->children; $t->configure( -background => 'yellow' );
MainLoop;
__END__
-- J-L.M.
Dans l'article <bmrif3$m55$1@apollon.grec.isp.9tel.net>, fabrice.cantin@9
online.fr a dit...
Ma question va vous paraitre simple mais je m'arrache les cheveux dessus
depuis une heure :(
Comment on change la couleur à l'interieur d'un labframe. J'ai réussi à
changer la couleur du background mais ce que je veux c'est changer celle à
l'interieur du cadre du labframe.
Non, c'est pas simple.
On peut utiliser la méthode children pour descendre dans l'arbre des sous-
widget de ce widget composé. On retrouve le widget Text et on peut utiliser
dessus la méthode configure.
#!/usr/bin/perl -w
use strict;
use Tk;
use Tk::LabFrame;
my $mw = MainWindow->new(-title => 'Exemple de LabFrame');
my $lf = $mw->LabFrame(-label => 'Label du LabFrame',
-labelside => 'acrosstop',
)->pack;
$lf->Text( -width => 40, -height => 5)->pack;
my ($t) = (($lf->children)[0]->children)[1]->children;
$t->configure( -background => 'yellow' );
Ma question va vous paraitre simple mais je m'arrache les cheveux dessus depuis une heure :(
Comment on change la couleur à l'interieur d'un labframe. J'ai réussi à changer la couleur du background mais ce que je veux c'est changer celle à l'interieur du cadre du labframe.
Non, c'est pas simple.
On peut utiliser la méthode children pour descendre dans l'arbre des sous- widget de ce widget composé. On retrouve le widget Text et on peut utiliser dessus la méthode configure.
#!/usr/bin/perl -w use strict; use Tk; use Tk::LabFrame;
my $mw = MainWindow->new(-title => 'Exemple de LabFrame'); my $lf = $mw->LabFrame(-label => 'Label du LabFrame', -labelside => 'acrosstop', )->pack;
$lf->Text( -width => 40, -height => 5)->pack;
my ($t) = (($lf->children)[0]->children)[1]->children; $t->configure( -background => 'yellow' );
MainLoop;
__END__
-- J-L.M.
fabrice cantin
Merci je suis un peu fatigué pour faire ça mais je test dès demain, et en effet c'est pas aussi simple que je ne pensais ^^
"Jean-Louis MOREL" a écrit dans le message de news: bn1jpm$1dt$
Dans l'article <bmrif3$m55$, online.fr a dit...
Ma question va vous paraitre simple mais je m'arrache les cheveux dessus depuis une heure :(
Comment on change la couleur à l'interieur d'un labframe. J'ai réussi à changer la couleur du background mais ce que je veux c'est changer celle à
l'interieur du cadre du labframe.
Non, c'est pas simple.
On peut utiliser la méthode children pour descendre dans l'arbre des sous- widget de ce widget composé. On retrouve le widget Text et on peut utiliser
dessus la méthode configure.
#!/usr/bin/perl -w use strict; use Tk; use Tk::LabFrame;
my $mw = MainWindow->new(-title => 'Exemple de LabFrame'); my $lf = $mw->LabFrame(-label => 'Label du LabFrame', -labelside => 'acrosstop', )->pack;
$lf->Text( -width => 40, -height => 5)->pack;
my ($t) = (($lf->children)[0]->children)[1]->children; $t->configure( -background => 'yellow' );
MainLoop;
__END__
-- J-L.M.
Merci je suis un peu fatigué pour faire ça mais je test dès demain, et en
effet c'est pas aussi simple que je ne pensais ^^
"Jean-Louis MOREL" <jl_morel@bribes.org> a écrit dans le message de news:
bn1jpm$1dt$1@news-reader3.wanadoo.fr...
Dans l'article <bmrif3$m55$1@apollon.grec.isp.9tel.net>, fabrice.cantin@9
online.fr a dit...
Ma question va vous paraitre simple mais je m'arrache les cheveux dessus
depuis une heure :(
Comment on change la couleur à l'interieur d'un labframe. J'ai réussi à
changer la couleur du background mais ce que je veux c'est changer celle
à
l'interieur du cadre du labframe.
Non, c'est pas simple.
On peut utiliser la méthode children pour descendre dans l'arbre des sous-
widget de ce widget composé. On retrouve le widget Text et on peut
utiliser
dessus la méthode configure.
#!/usr/bin/perl -w
use strict;
use Tk;
use Tk::LabFrame;
my $mw = MainWindow->new(-title => 'Exemple de LabFrame');
my $lf = $mw->LabFrame(-label => 'Label du LabFrame',
-labelside => 'acrosstop',
)->pack;
$lf->Text( -width => 40, -height => 5)->pack;
my ($t) = (($lf->children)[0]->children)[1]->children;
$t->configure( -background => 'yellow' );
Mais c'est peut-être le premier petit-fils (caché) du LabFrame qu'on veut colorer. Dans ce cas, la méthode est la bonne mais il faut s'arrêter au petit-fils sans aller à l'arrière petit-fils (*) :
my $petit_fils = ($lf->children)[0]->children[0]; $petit_fils->configure(-background => 'red');
En fait, il y a deux petit-fils (cf. exemple ci-dessous).
On peut aussi colorer le premier fils direct qui est le cadre extérieur (*):
Ce qui donne au final (je ne garantie pas l'harmonie des couleurs ;-) :
my $mw = MainWindow->new(-title => 'Exemple de LabFrame');
my $lf = $mw->LabFrame(-label => 'Label du LabFrame', -labelside => 'acrosstop', -background => 'blue', )->pack;
# un element du LabFrame (j'ai réduit la taille pour qu'on voit les bords) $lf->Text(qw/-width 5 -height 5 -background yellow/)->pack;
# les deux cadres intérieurs du LabFrame (($lf->children)[0]->children)[0]->configure(-background => 'red'); (($lf->children)[0]->children)[1]->configure(-background => 'magenta');
# le cadre extérieur du LabFrame ($lf->children)[0]->configure(-background => 'green');
# le label du LabFrame ($lf->children)[1]->configure(-background => 'cyan');
Et là, il ne manque plus que le clignotement pour en faire un vrai sapin de Noël ;-)
(*) Attention: cela marche avec l'implémentation actuelle des LabFrame mais il n'y a aucune garantie que cela marche tout le temps...
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) 20 Oct 2003 21:24:06 GMT,
jl_morel@bribes.org (Jean-Louis MOREL) écrivait (wrote):
#!/usr/bin/perl -w
use strict;
use Tk;
use Tk::LabFrame;
my $mw = MainWindow->new(-title => 'Exemple de LabFrame');
my $lf = $mw->LabFrame(-label => 'Label du LabFrame',
-labelside => 'acrosstop',
)->pack;
$lf->Text( -width => 40, -height => 5)->pack;
my ($t) = (($lf->children)[0]->children)[1]->children;
$t->configure( -background => 'yellow' );
MainLoop;
À (at) 20 Oct 2003 21:24:06 GMT,
jl_morel@bribes.org (Jean-Louis MOREL) écrivait (wrote):
[...]
Mais c'est peut-être le premier petit-fils (caché) du LabFrame qu'on veut
colorer. Dans ce cas, la méthode est la bonne mais il faut s'arrêter au
petit-fils sans aller à l'arrière petit-fils (*) :
my $petit_fils = ($lf->children)[0]->children[0];
$petit_fils->configure(-background => 'red');
En fait, il y a deux petit-fils (cf. exemple ci-dessous).
On peut aussi colorer le premier fils direct qui est le cadre extérieur (*):
Ce qui donne au final (je ne garantie pas l'harmonie des couleurs ;-) :
my $mw = MainWindow->new(-title => 'Exemple de LabFrame');
my $lf = $mw->LabFrame(-label => 'Label du LabFrame',
-labelside => 'acrosstop',
-background => 'blue',
)->pack;
# un element du LabFrame (j'ai réduit la taille pour qu'on voit les bords)
$lf->Text(qw/-width 5 -height 5 -background yellow/)->pack;
# les deux cadres intérieurs du LabFrame
(($lf->children)[0]->children)[0]->configure(-background => 'red');
(($lf->children)[0]->children)[1]->configure(-background => 'magenta');
# le cadre extérieur du LabFrame
($lf->children)[0]->configure(-background => 'green');
# le label du LabFrame
($lf->children)[1]->configure(-background => 'cyan');
Et là, il ne manque plus que le clignotement pour en faire un vrai sapin de
Noël ;-)
(*) Attention: cela marche avec l'implémentation actuelle des LabFrame mais il
n'y a aucune garantie que cela marche tout le temps...
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
Mais c'est peut-être le premier petit-fils (caché) du LabFrame qu'on veut colorer. Dans ce cas, la méthode est la bonne mais il faut s'arrêter au petit-fils sans aller à l'arrière petit-fils (*) :
my $petit_fils = ($lf->children)[0]->children[0]; $petit_fils->configure(-background => 'red');
En fait, il y a deux petit-fils (cf. exemple ci-dessous).
On peut aussi colorer le premier fils direct qui est le cadre extérieur (*):
Ce qui donne au final (je ne garantie pas l'harmonie des couleurs ;-) :
my $mw = MainWindow->new(-title => 'Exemple de LabFrame');
my $lf = $mw->LabFrame(-label => 'Label du LabFrame', -labelside => 'acrosstop', -background => 'blue', )->pack;
# un element du LabFrame (j'ai réduit la taille pour qu'on voit les bords) $lf->Text(qw/-width 5 -height 5 -background yellow/)->pack;
# les deux cadres intérieurs du LabFrame (($lf->children)[0]->children)[0]->configure(-background => 'red'); (($lf->children)[0]->children)[1]->configure(-background => 'magenta');
# le cadre extérieur du LabFrame ($lf->children)[0]->configure(-background => 'green');
# le label du LabFrame ($lf->children)[1]->configure(-background => 'cyan');
Et là, il ne manque plus que le clignotement pour en faire un vrai sapin de Noël ;-)
(*) Attention: cela marche avec l'implémentation actuelle des LabFrame mais il n'y a aucune garantie que cela marche tout le temps...
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>