ulis, 24-10-2005. Un mini megawidget qui incorpore des ascenseurs à un widget canvas.
scanvas .sc -bg beige -width 200 -height 200 pack .sc -fill both -expand 1
Pourquoi
Pour ne pas refaire cent fois la même chose.
Comment
Les ascenseurs sont incorporés. Point.
Le mini megawidget
if {[info exists ::scanvas::version]} { return } namespace eval scanvas \ { # ########################## # # package scanvas variable version 1.0 # # crée un widget canvas avec ses ascenseurs # # -------------------------- # (C) 2005, ulis # licence NOL (No Obligation Licence) # -------------------------- # usage : # # package require scanvas # scanvas .sc -bg beige -width 200 -height 200 # .sc create ... # pack .sc -fill both -expand 1 # .sc config -scrollregion [.sc bbox all] # # ########################## package require Tk package provide scanvas $version namespace export scanvas proc scanvas {w args} \ { frame $w canvas $w.scanvas_c \ -xscrollc [list $w.scanvas_hs set] \ -yscrollc [list $w.scanvas_vs set] scrollbar $w.scanvas_hs -orient horizontal \ -command [list $w.scanvas_c xview] scrollbar $w.scanvas_vs -orient vertical \ -command [list $w.scanvas_c yview] grid $w.scanvas_c $w.scanvas_vs -sticky nsew grid $w.scanvas_hs -sticky ew grid rowconfigure $w 0 -weight 1 grid columnconfigure $w 0 -weight 1 rename $w ::scanvas::_$w interp alias {} ::$w {} ::$w.scanvas_c if {$args != ""} \ { uplevel 1 $w.scanvas_c config $args } return $w } } namespace import ::scanvas::scanvas
L'installation
Installer le package scrolled qui comprend stext, sframe et scanvas.
Le test
package require scanvas scanvas .sc -bg beige -width 200 -height 200 pack .sc -fill both -expand 1 .sc create text 0 0 -anchor nw \ -text [info body ::scanvas::scanvas] .sc config -scrollregion [.sc bbox all]
Voir aussi
Discussion
Catégorie Exemple | Catégorie paquet