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

📄 manager.tcl

📁 是TCL的另外一个编译(解释)器
💻 TCL
字号:
namespace eval DemoManager {    variable _progress 0    variable _afterid  ""    variable _status "Compute in progress..."    variable _homogeneous 0}proc DemoManager::create { nb } {    set frame [$nb insert end demoManager -text "Manager"]    set topf  [frame $frame.topf]    set titf1 [TitleFrame $topf.titf1 -text "MainFrame"]    set titf2 [TitleFrame $topf.titf2 -text "NoteBook"]    set titf3 [TitleFrame $frame.titf3 -text "Paned & ScrolledWindow"]    _mainframe [$titf1 getframe]    _notebook  [$titf2 getframe]    _paned     [$titf3 getframe]    pack $titf1 $titf2 -padx 4 -side left -fill both -expand yes    pack $topf -fill x -pady 2    pack $titf3 -pady 2 -padx 4 -fill both -expand yes    return $frame}proc DemoManager::_mainframe { parent } {    set labf1 [LabelFrame $parent.labf1 -text "Toolbar" -side top -anchor w \                   -relief sunken -borderwidth 2]    set subf  [$labf1 getframe]    checkbutton $subf.chk1 -text "View toolbar 1" -variable Demo::toolbar1 \        -command {$Demo::mainframe showtoolbar 0 $Demo::toolbar1}    checkbutton $subf.chk2 -text "View toolbar 2" -variable Demo::toolbar2 \        -command {$Demo::mainframe showtoolbar 1 $Demo::toolbar2}    pack $subf.chk1 $subf.chk2 -anchor w -fill x    pack $labf1 -fill both    set labf2 [LabelFrame $parent.labf2 -text "Status bar" -side top -anchor w \                   -relief sunken -borderwidth 2]    set subf  [$labf2 getframe]    checkbutton $subf.chk1 -text "Show Progress\nindicator" -justify left \        -variable DemoManager::_progress \        -command  {DemoManager::_show_progress}    pack $subf.chk1 -anchor w -fill x    pack $labf1 $labf2 -side left -padx 4 -fill both}proc DemoManager::_notebook { parent } {    checkbutton $parent.chk1 -text "Homogeneous label" \        -variable DemoManager::_homogeneous \        -command  {$Demo::notebook configure -homogeneous $DemoManager::_homogeneous}    pack $parent.chk1 -side left -anchor n -fill x}proc DemoManager::_paned { parent } {    set pw1   [PanedWindow $parent.pw -side top]    set pane  [$pw1 add -minsize 100]    set pw2    [PanedWindow $pane.pw -side left]    set pane1  [$pw2 add -minsize 100]    set pane2  [$pw2 add -minsize 100]    set pane3  [$pw1 add -minsize 100]    foreach pane [list $pane1 $pane2] {        set sw    [ScrolledWindow $pane.sw]        set lb    [listbox $sw.lb -height 8 -width 20 -highlightthickness 0]        for {set i 1} {$i <= 8} {incr i} {            $lb insert end "Value $i"        }        $sw setwidget $lb        pack $sw -fill both -expand yes    }    set sw [ScrolledWindow $pane3.sw -relief sunken -borderwidth 2]    set sf [ScrollableFrame $sw.f]    $sw setwidget $sf    set subf [$sf getframe]    set lab [label $subf.lab -text "This is a ScrollableFrame"]    set chk [checkbutton $subf.chk -text "Constrained width" \                 -variable DemoManager::_constw \                 -command  "$sf configure -constrainedwidth \$DemoManager::_constw"]    pack $lab    pack $chk -anchor w    bind $chk <FocusIn> "$sf see $chk"    for {set i 0} {$i <= 20} {incr i} {        pack [entry $subf.ent$i -width 50]  -fill x -pady 4	bind $subf.ent$i <FocusIn> "$sf see $subf.ent$i"        $subf.ent$i insert end "Text field $i"    }    pack $sw $pw2 $pw1 -fill both -expand yes}proc DemoManager::_show_progress { } {    variable _progress    variable _afterid    variable _status    if { $_progress } {        set Demo::status   "Compute in progress..."        set Demo::prgindic 0        $Demo::mainframe showstatusbar progression        if { $_afterid == "" } {            set _afterid [after 30 DemoManager::_update_progress]        }    } else {        set Demo::status ""        $Demo::mainframe showstatusbar status        set _afterid ""    }}proc DemoManager::_update_progress { } {    variable _progress    variable _afterid    if { $_progress } {        if { $Demo::prgindic < 100 } {            incr Demo::prgindic 5            set _afterid [after 30 DemoManager::_update_progress]        } else {            set _progress 0            $Demo::mainframe showstatusbar status            set Demo::status "Done"            set _afterid ""            after 500 {set Demo::status ""}        }    } else {        set _afterid ""    }}

⌨️ 快捷键说明

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