Frames avec ascenseur

 

Par défaut, Tk ne propose rien qui permette de créer un widget frame avec un ascenseur. Pourtant, c'est bien pratique pour afficher beaucoup de choses dans un petit écran. Heureusement, Maurice Ulis a écrit une extension scrolledframe (téléchargeable ici : Un cadre avec des ascenseurs ou ici : http://mini.net/tcl/AScrolledFrame ) qui permet de faire ça, voyons comment.

Dans l'exemple ci-dessous, nous allons créer ce fameux conteneur avec ascenseur pour y placer une série de boutons radio les uns sous les autres :

 package require Scrolledframe
 if {![llength [info proc scrolledframe]]} {
     namespace import ::scrolledframe::scrolledframe
 }
 set gui [toplevel .démo]
 frame $gui.f1
 pack $gui.f1 -side top -expand 1 -fill both
 scrolledframe $gui.f1.sf -yscroll "$gui.f1.sb set"
 scrollbar $gui.f1.sb  -orient vertical  -command "$gui.f1.sf yview"
 pack $gui.f1.sf -side left -expand 1 -fill both
 pack $gui.f1.sb -side left -expand 1 -fill y
 set swg $gui.f1.sf.scrolled
 for {set i 1} { $i < 51 } { incr i } {
     set [set i] [radiobutton $swg.$i -text "N° $i" -value 0]
     pack [set [set i]] -expand 1 -fill x
 }
 $gui.f1.sf configure -width [winfo width $swg.1]
 $gui.f1.sf configure -height [expr 6 * [winfo height $swg.1]]
 update

Voilà, c'est tout ! Bien entendu, on pourra remplacer les radiobuttons par n'importe quel widget Tk, merci Maurice !


Voir aussi


Catégorie Exemple | Catégorie Interface utilisateur