Un label sur le côté

 

ulis, 2004-01-24. Une procédure pour un label dont le texte est tourné de 90°.


Procédure

  package require Img

  proc rlabel {w side args} \
  {
    if {$side != "up"} { set side bottom }
    eval [linsert $args 0 label $w]
    pack $w
    update
    image create photo photo -format window -data $w
    destroy $w
    set width [image width photo]
    set height [image height photo]
    set data [photo data]
    image create photo photo2
    for {set x 0} {$x < $width} {incr x} \
    {
      for {set y 0} {$y < $height} {incr y} \
      {
        set xx $x
        set yy $y
        if {$side == "bottom"} { set xx [expr {$width - $x - 1}] }
        if {$side == "up"} { set yy [expr {$height - $y - 1}] }
        photo2 put [lindex $data $yy $xx] -to $y $x
      }
    }
    label $w -image photo2
    return $w
  }

Démo

  set font {Helvetica -16 bold}
  pack [rlabel .vl up -text "a rlabel" -fg navy -bg azure -font $font] -side left

Voir aussi


Discussion


Catégorie Exemple | Catégorie Widget | Catégorie Interface utilisateur