backgroundimage

et 12/30/2023

New to Tcl/Tk 9.0 is the enhancement of both toplevel and frame to now include a background image. This also includes the ability to tile the background if the image is small. It quite nicely re-tile's as needed when the window size changes. Also demonstrated is the 9.0 new command lseq.

Here is an example program:

package require Tk 9.0-

proc main {args} {
    global pic1 pic2
    
    wm withdraw .

    toplevel .newtop        -backgroundimage $pic1 -tile 1
    frame    .newtop.f      -backgroundimage $pic2 -tile 1
    button   .newtop.f.b    -text "Quit!"   -command exit -bg blue -fg yellow -font {Consolas 28}
    pack     .newtop.f      -fill y         -expand 1
    pack      .newtop.f.b   -expand 1
    
    wm geom .newtop 400x200+64+64
    wm protocol .newtop WM_DELETE_WINDOW {exit}

    set count 55
    set step 5
    foreach pass [lseq 1 to 5] {
        foreach w [lseq 400 count $count  by $step] h [lseq 200 count $count by $step] {
            wm geom .newtop ${w}x$h
            after 5
            update
        }
        foreach w [lseq $w count $count  by -$step] h [lseq $h count $count by -$step] {
            wm geom .newtop ${w}x$h
            after 5
            update
        }
    }
    
}


                
set pic1 [image create photo -data {

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

}]
        

        
set pic2 [image create photo -data {

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

}]

main