Server IP : 103.119.228.120 / Your IP : 18.218.108.24 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/tk8.5/demos/ |
Upload File : |
# mclist.tcl -- # # This demonstration script creates a toplevel window containing a Ttk # tree widget configured as a multi-column listbox. if {![info exists widgetDemo]} { error "This script should be run from the \"widget\" demo." } package require Tk package require Ttk set w .mclist catch {destroy $w} toplevel $w wm title $w "Multi-Column List" wm iconname $w "mclist" positionWindow $w ## Explanatory text ttk::label $w.msg -font $font -wraplength 4i -justify left -anchor n -padding {10 2 10 6} -text "Ttk is the new Tk themed widget set. One of the widgets it includes is a tree widget, which can be configured to display multiple columns of informational data without displaying the tree itself. This is a simple way to build a listbox that has multiple columns. Clicking on the heading for a column will sort the data by that column. You can also change the width of the columns by dragging the boundary between them." pack $w.msg -fill x ## See Code / Dismiss pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x ttk::frame $w.container ttk::treeview $w.tree -columns {country capital currency} -show headings \ -yscroll "$w.vsb set" -xscroll "$w.hsb set" if {[tk windowingsystem] ne "aqua"} { ttk::scrollbar $w.vsb -orient vertical -command "$w.tree yview" ttk::scrollbar $w.hsb -orient horizontal -command "$w.tree xview" } else { scrollbar $w.vsb -orient vertical -command "$w.tree yview" scrollbar $w.hsb -orient horizontal -command "$w.tree xview" } pack $w.container -fill both -expand 1 grid $w.tree $w.vsb -in $w.container -sticky nsew grid $w.hsb -in $w.container -sticky nsew grid column $w.container 0 -weight 1 grid row $w.container 0 -weight 1 ## The data we're going to insert set data { Argentina {Buenos Aires} ARS Australia Canberra AUD Brazil Brazilia BRL Canada Ottawa CAD China Beijing CNY France Paris EUR Germany Berlin EUR India {New Delhi} INR Italy Rome EUR Japan Tokyo JPY Mexico {Mexico City} MXN Russia Moscow RUB {South Africa} Pretoria ZAR {United Kingdom} London GBP {United States} {Washington, D.C.} USD } ## Code to insert the data nicely set font [ttk::style lookup [$w.tree cget -style] -font] foreach col {country capital currency} name {Country Capital Currency} { $w.tree heading $col -command [list SortBy $w.tree $col 0] -text $name $w.tree column $col -width [font measure $font $name] } foreach {country capital currency} $data { $w.tree insert {} end -values [list $country $capital $currency] foreach col {country capital currency} { set len [font measure $font "[set $col] "] if {[$w.tree column $col -width] < $len} { $w.tree column $col -width $len } } } ## Code to do the sorting of the tree contents when clicked on proc SortBy {tree col direction} { # Determine currently sorted column and its sort direction foreach c {country capital currency} { set s [$tree heading $c state] if {("selected" in $s || "alternate" in $s) && $col ne $c} { # Sorted column has changed $tree heading $c state {!selected !alternate !user1} set direction [expr {"alternate" in $s}] } } # Build something we can sort set data {} foreach row [$tree children {}] { lappend data [list [$tree set $row $col] $row] } set dir [expr {$direction ? "-decreasing" : "-increasing"}] set r -1 # Now reshuffle the rows into the sorted order foreach info [lsort -dictionary -index 0 $dir $data] { $tree move [lindex $info 1] {} [incr r] } # Switch the heading so that it will sort in the opposite direction $tree heading $col -command [list SortBy $tree $col [expr {!$direction}]] \ state [expr {$direction?"!selected alternate":"selected !alternate"}] if {[tk windowingsystem] eq "aqua"} { # Aqua theme displays native sort arrows when user1 state is set $tree heading $col state "user1" } }