Exemple Tcl/Tk

Mise à jour: 10 Septembre 2006
Version: 1.0
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2005-2006 Jean-Louis BICQUELET-SALAÜN
 

application

  12/12/2005

Application permettant de generer un fichier à partir d'un autre :

exemple:


# bouton quit
proc quit {} {
global Entry_src
global Entry_dest

destroy .entry .edit_button .quit_button
unset Entry_src
unset Entry_dest
}

# browse
proc browse_source {} {
     set filename [tk_getOpenFile -filetypes {{Text { * } }}]
     .frame1.entry_src insert end $filename
}

proc browse_dest {} {
      set filename [tk_getSaveFile -filetypes {{Text { * } }}]
     .frame2.entry_dst insert end $filename
}

# generate
proc generate {} {
  global action do
  set f [ open "| $do $action" r]
  while {[gets $f x] >= 0} {
    .bottom.main insert 1.0 "$x\n"
  }
  catch {close $f}
}

# about
proc show_about {} {
    tk_messageBox -title "About generate" \
    -message "Tcl/Tk\nGenerate files\nVersion 1.0"
}

# form
frame .frame1
label .frame1.label1 -text "source file:     "
entry .frame1.entry_src -textvariable Entry_src  -width 70
button .frame1.browse_src -text browse -command { browse_source }
pack .frame1.label1 .frame1.entry_src .frame1.browse_src -side left -padx 5 -pady 0

frame .frame2
label .frame2.label2 -text "destination file:"
entry .frame2.entry_dst -textvariable Entry_dst -width 70
button .frame2.browse_dst -text browse -command { browse_dest }
pack .frame2.label2 .frame2.entry_dst .frame2.browse_dst  -side left -padx 5 -pady 0

frame .frame3
button .frame3.about -text About -command { show_about }
button .frame3.generate_button -text Generate -command { generate }
button .frame3.quit_button -text Quit -command { quit }
pack .frame3.about  .frame3.generate_button .frame3.quit_button -side left -padx 5 -pady 0

pack .frame1 .frame2 .frame3 -pady 6

# keys
bind . "" {show_about}

voir aussi

fonctions