FAQ Perl/TkConsultez toutes les FAQ
Nombre d'auteurs : 3, nombre de questions : 86, dernière mise à jour : 24 mai 2013 Ajouter une question
Bienvenue sur la FAQ Perl/Tk. Cette FAQ a pour vocation de vous enseigner ou de vous faire revoir les notions de Perl/Tk. N'hésitez pas à utiliser le moteur de recherche.
Vous souhaitez participer à l'amélioration de cette FAQ, n'hésitez pas !! Commentez
Bonne lecture !
Pour créer des onglets, il faut utiliser le widget NoteBook. Pour cela, il est nécessaire d'appeler le module Tk::NoteBook dans votre script. Il est installé avec le module Tk.
Vous devez dans un premier temps créer un bloc-notes. C'est le cadre sur lequel doivent être positionnés les onglets.
Code perl : | Sélectionner tout |
my $blocnote = $fenetre_parent->NoteBook();
Code perl : | Sélectionner tout |
my $onglet1 = $blocnote->add('NomOnglet', -label => 'onglet 1');
Code perl : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/usr/bin/perl use strict; use warnings; use Tk; use Tk::NoteBook; my $fenetre_principale = MainWindow->new( -title => 'onglet', -background => 'yellow', ); $fenetre_principale->minsize ( 300, 300); $fenetre_principale->Label ( -text => "exemple d'onglets",)->pack(); # blocnote my $blocnote = $fenetre_principale->NoteBook( -backpagecolor => 'white', -inactivebackground => 'pink', )->pack( qw/-fill both -expand 1/ ); # onglets my $onglet1 = $blocnote->add('onglet1', -label => 'onglet 1',); my $onglet2 = $blocnote->add('onglet2', -label => 'onglet 2',); $onglet1->Label( -text => 'texte onglet 1',)->pack(); $onglet2->Label( -text => 'texte onglet 2',)->pack(); $fenetre_principale->Button ( -text => 'Bouton fermeture', -command => sub { exit; }, )->pack(); MainLoop; |
Vous avez sans doute remarqué qu'il est impossible de mettre une couleur de fond avec l'option -background lorsque l'on crée un onglet avec la méthode add. Prenons par exemple ce code.
Code perl : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #!/usr/bin/perl use strict; use warnings; use Tk; use Tk::NoteBook; my $fenetre_principale = MainWindow->new( -title => 'onglet', -background => 'yellow', ); $fenetre_principale->minsize ( 300, 300); $fenetre_principale->Label ( -text => "exemple d'onglets",)->pack(); # blocnote my $blocnote = $fenetre_principale->NoteBook( -background => 'red', -backpagecolor => 'white', -inactivebackground => 'pink', )->pack( qw/-fill both -expand 1/ ); # onglets my $onglet1 = $blocnote->add('onglet1', -label => 'onglet 1', ); my $onglet2 = $blocnote->add('onglet2', -label => 'onglet 2',); $onglet1->Label( -text => 'texte onglet 1',)->pack(); $onglet2->Label( -text => 'texte onglet 2',)->pack(); $fenetre_principale->Button ( -text => 'Bouton fermeture', -command => sub { exit; }, )->pack(); MainLoop; |
Si vous essayez de mettre l'onglet 1 en vert ainsi
Code perl : | Sélectionner tout |
my $onglet1 = $blocnote->add('onglet1', -label => 'onglet 1', -background => 'green');
Néanmoins, il y a une parade toute simple. La méthode add retourne un objet de type Frame. Il suffit de le récupérer et d'y appliquer les options dont on a besoin (option de Tk::Frame).
Code perl : | Sélectionner tout |
1 2 | my $onglet1 = $blocnote->add('onglet1', -label => 'onglet 1',); $onglet1->configure( -background => 'green',); |
Génial non ?!!
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.