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 !


SommaireTous les widgetsLes onglets (NoteBook) (2)
précédent sommaire suivant
 

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();
Ensuite, il suffit de créer les onglets nécessaires.

Code perl : Sélectionner tout
my $onglet1 = $blocnote->add('NomOnglet', -label => 'onglet 1');
Chaque onglet doit avoir un nom qui lui sera unique. Maintenant, sur chaque onglet, vous pouvez faire ce que vous voulez, comme créer un cadre ou un bouton.

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;

Mis à jour le 24 août 2009 djibril

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');
vous obtiendrez le message d'erreur suivant : Bad option `-background' at C:/Perl/site/lib/Tk.pm line 250.. Normal, cette option n'est pas disponible ! Lisez la documentation de Tk::NoteBook !

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',);
Voici maintenant ce que l'on obtient.

Génial non ?!!

Mis à jour le 25 août 2009 djibril

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2019 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.