⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgrid1.tcl

📁 linux 下的源代码分析阅读器 red hat公司新版
💻 TCL
字号:
# Tix Demostration Program## This sample program is structured in such a way so that it can be# executed from the Tix demo program "widget": it must have a# procedure called "RunSample". It should also have the "if" statment# at the end of this file so that it can be run as a standalone# program using tixwish.# Demonstrates the tixGrid widget#proc RunSample {w} {    wm title $w "Doe Inc. Performance"    wm geometry $w 640x300    set top [frame $w.f -bd 1 -relief raised]    set box [tixButtonBox $w.b -bd 1 -relief raised]    pack $box -side bottom -fill both    pack $top -side top -fill both -expand yes    label $top.lab -text "This widget is still under alphaPlease ignore the debug messagesNot all features have been implemented" -justify left    pack $top.lab -side top -anchor c -padx 3 -pady 3    MakeGrid $top    # Create the buttons    #    $box add ok     -text Ok     -command "destroy $w" -width 6    $box add cancel -text Cancel -command "destroy $w" -width 6}# This command is called whenever the background of the grid needs to# be reformatted. The x1, y1, x2, y2 sprcifies the four corners of the area# that needs to be reformatted.#proc gformat {w area x1 y1 x2 y2} {    set bg(s-margin) gray65    set bg(x-margin) gray65    set bg(y-margin) gray65    set bg(main)     gray20    case $area {	main {	    for {set y [expr ($y1/2) * 2]} {$y <= $y2} {incr y 2} {		$w format border $x1 $y $x2 $y \		    -relief flat -filled 1\		    -bd 0 -bg #80b080 -selectbackground #80b0ff	    }	    $w format grid $x1 $y1 $x2 $y2 \		-relief raised -bd 1 -bordercolor $bg($area) -filled 0 -bg red\		-xon 1 -yon 1 -xoff 0 -yoff 0 -anchor se	}	y-margin {	    $w format border $x1 $y1 $x2 $y2 \		-fill 1 -relief raised -bd 1 -bg $bg($area) \		-selectbackground gray80	}	default {	    $w format border $x1 $y1 $x2 $y2 \		-filled 1 \		-relief raised -bd 1 -bg $bg($area) \		-selectbackground gray80	}    }}# Print a number in $ format##proc Dollar {s} {    set n [string len $s]    set start [expr $n % 3]    if {$start == 0} {	set start 3    }    set str ""    for {set i 0} {$i < $n} {incr i} {	if {$start == 0} {	    append str ","	    set start 3	}	incr start -1	append str [string index $s $i]    }    return $str}proc MakeGrid {w} {    # data format {year revenue profit}    #    set data {	{1970	1000000000	1000000}	{1971	1100000000	2000000}	{1972	1200000000	3000000}	{1973	1300000000	4000000}	{1974	1400000000	5000000}	{1975	1500000000	6000000}	{1976	1600000000	7000000}	{1977	1700000000	8000000}	{1978	1800000000	9000000}	{1979	1900000000     10000000}	{1980	2000000000     11000000}	{1981	2100000000     22000000}	{1982	2200000000     33000000}	{1983	2300000000     44000000}	{1984	2400000000     55000000}	{1985	3500000000     36000000}	{1986	4600000000     57000000}	{1987	5700000000     68000000}	{1988	6800000000     79000000}	{1989	7900000000     90000000}	{1990  13000000000    111000000}	{1991  14100000000    122000000}	{1992  16200000000    233000000}	{1993  28300000000    344000000}	{1994  29400000000    455000000}	{1995  38500000000    536000000}    }    set headers {	"Revenue ($)"	"Rev. Growth (%)"	"Profit ($)"	"Profit Growth (%)"    }    # Create the grid    #    tixScrolledGrid $w.g -bd 0    pack $w.g -expand yes -fill both -padx 3 -pady 3    set grid [$w.g subwidget grid]    $grid config -formatcmd "gformat $grid"    # Set the size of the columns    #    $grid size col 0 -size 10char    $grid size col 1 -size auto    $grid size col 2 -size auto    $grid size col 3 -size auto    $grid size col 4 -size auto    # set the default size of the column and rows. these sizes will be used    # if the size of a row or column has not be set via the "size col ?"    # command    $grid size col default -size 5char    $grid size row default -size 1.1char -pad0 3    set margin [tixDisplayStyle text -refwindow $grid   \	-anchor c -padx 3 -font [tix option get bold_font]]    set dollar [tixDisplayStyle text  -refwindow $grid  \	-anchor e]    # Create the headers    #    set x 1    foreach h $headers {	$grid set $x 0 -itemtype text -text $h -style $margin	incr x    }    # Insert the data, year by year    #    set lastRevn {}    set lastProf {}    set i         1    foreach line $data {	set year [lindex $line 0]	set revn [lindex $line 1]	set prof [lindex $line 2]	if {$lastRevn != {}} {	    set rgrowth \		[format %4.2f [expr ($revn.0-$lastRevn)/$lastRevn*100.0]]	} else {	    set rgrowth "-"	}	if {$lastProf != {}} {	    set pgrowth \		[format %4.2f [expr ($prof.0-$lastProf)/$lastProf*100.0]]	} else {	    set pgrowth "-"	}		$grid set 0 $i -itemtype text -style $margin -text $year	$grid set 1 $i -itemtype text -style $dollar -text [Dollar $revn]	$grid set 2 $i -itemtype text -style $dollar -text $rgrowth	$grid set 3 $i -itemtype text -style $dollar -text [Dollar $prof]	$grid set 4 $i -itemtype text -style $dollar -text $pgrowth	set lastRevn $revn.0	set lastProf $prof.0	incr i    }}if {![info exists tix_demo_running]} {    wm withdraw .    set w .demo    toplevel $w    RunSample $w    bind $w <Destroy> exit}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -