Version 7 of ttk::style short simple example

Updated 2009-06-08 12:44:31 by LV

Here is a short script which gives a simple example of ttk::style usage.

It displays buttons and randomly set a custom style to some of them.

        #
        # Experiment on ttk::style
        #

        package require Tk;

        set MAX 24
        set COL 4
        ttk::setTheme "clam"

        ttk::style configure style1.TButton -background goldenrod
        ttk::style configure style2.TButton -background gold
        ttk::style configure style3.TButton -background {lemon chiffon}

        proc whatClassStyle {widget} {
                        set wClass winfo class ${widget} 
                        set wStyle ${widget} cget -style 
                        .label configure -text "button ${widget} class is ${wClass}. Style is ${wStyle}"         
        }


        set k 0 
        while {$k < $MAX} {               
                set textbutton format "%02d" $k
                set widget ".btn$k"
                set btn$k ttk::button ${widget} -text $textbutton
                set alea expr int(rand()*4)
                if {${alea} > 0} {
                        set aleaStyle "style${alea}.TButton"
                        ${widget} configure -style ${aleaStyle}
                }
                ${widget} configure -command list whatClassStyle ${widget}
                incr k
        }

        set k 0
        while {$k < $MAX} {
                set j 0 
                set cmd list grid
                while {$j < $COL} {
                        lappend cmd .btn$k
                        incr j 
                        incr k
                }
                eval $cmd
        }


        set label ttk::label .label -text "..."
        grid  .label -columnspan $COL