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::scanvasL'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