add: tcl GUI
This commit is contained in:
parent
1051374b13
commit
bbbf71374c
2 changed files with 108 additions and 0 deletions
BIN
logo.gif
Normal file
BIN
logo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 367 KiB |
108
mimi.tcl
Normal file
108
mimi.tcl
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
package require Tk
|
||||||
|
|
||||||
|
proc ? L {lindex $L [expr {int (rand ()* [llength $L])}]}
|
||||||
|
|
||||||
|
proc validateFile name {
|
||||||
|
set ext [file extension $name]
|
||||||
|
if {$ext ni {.fas .fasta .nex .nexus .tnt .ss .phy .phylip}} {
|
||||||
|
tk_messageBox -icon error -type ok -message "extension of file must be fas fasta nex nexus tnt ss phy phylip"
|
||||||
|
return 0
|
||||||
|
} else {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc runMimi {} {
|
||||||
|
global input output mimi
|
||||||
|
if {[validateFile $input] && [validateFile $output]} {
|
||||||
|
if {[file exists $mimi]} {
|
||||||
|
exec $mimi -i $input -o $output
|
||||||
|
tk_messageBox -icon info -type ok -message "Success"
|
||||||
|
} else {
|
||||||
|
tk_messageBox -icon error -type ok -message "Can't find the path of MiMi"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc clearAll {} {
|
||||||
|
global input output mimi
|
||||||
|
set input ""
|
||||||
|
set output ""
|
||||||
|
}
|
||||||
|
|
||||||
|
proc chooseMimi {} {
|
||||||
|
global mimi
|
||||||
|
set file [tk_getOpenFile]
|
||||||
|
if {$file ne ""} {
|
||||||
|
set mimi $file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc chooseInput {} {
|
||||||
|
global input
|
||||||
|
set file [tk_getOpenFile]
|
||||||
|
if {$file ne ""} {
|
||||||
|
set input $file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc chooseOutput {} {
|
||||||
|
global output
|
||||||
|
set file [tk_getSaveFile]
|
||||||
|
if {$file ne ""} {
|
||||||
|
set output $file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc quitApp {} {
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
proc helpApp {} {
|
||||||
|
tk_messageBox -icon info -type ok -message "Thanks to my beloved daughter MiMi (Ragdoll cat) for accompanying me in my life, mom loves you forever.\n\nGuoyi"
|
||||||
|
}
|
||||||
|
|
||||||
|
#bind . <Escape> {quitApp}
|
||||||
|
wm protocol . WM_DELETE_WINDOW {quitApp}
|
||||||
|
|
||||||
|
wm iconphoto . [image create photo -file logo.gif]
|
||||||
|
|
||||||
|
set input ""
|
||||||
|
set output ""
|
||||||
|
set mimi ""
|
||||||
|
|
||||||
|
wm title . "Mimi GUI"
|
||||||
|
|
||||||
|
# 创建菜单栏
|
||||||
|
menu .menubar
|
||||||
|
.menubar add cascade -label "Settings" -menu .menubar.file
|
||||||
|
menu .menubar.file
|
||||||
|
.menubar.file add command -label "Select MiMi Path" -command chooseMimi
|
||||||
|
.menubar.file add separator
|
||||||
|
.menubar.file add command -label "Quit" -command quitApp
|
||||||
|
|
||||||
|
.menubar add cascade -label "Help" -menu .menubar.help
|
||||||
|
menu .menubar.help
|
||||||
|
.menubar.help add command -label "About" -command helpApp
|
||||||
|
|
||||||
|
# 配置菜单栏到顶层窗口
|
||||||
|
. configure -menu .menubar
|
||||||
|
|
||||||
|
# 创建输入输出框和按钮
|
||||||
|
grid [ttk::frame .c -padding "3 3 12 12"] -column 0 -row 0 -sticky nwes
|
||||||
|
grid columnconfigure . 0 -weight 1; grid rowconfigure . 0 -weight 1
|
||||||
|
|
||||||
|
grid [ttk::label .c.ilbl -text "Input"] -column 1 -row 1 -sticky e
|
||||||
|
grid [ttk::entry .c.input -width 20 -textvariable input] -column 2 -row 1 -sticky we
|
||||||
|
grid [ttk::button .c.ibtn -text "Select" -command chooseInput] -column 3 -row 1
|
||||||
|
|
||||||
|
grid [ttk::label .c.olbl -text "Output"] -column 1 -row 2 -sticky e
|
||||||
|
grid [ttk::entry .c.output -width 20 -textvariable output] -column 2 -row 2 -sticky we
|
||||||
|
grid [ttk::button .c.obtn -text "Select" -command chooseOutput] -column 3 -row 2
|
||||||
|
|
||||||
|
grid [ttk::button .c.run -text "Run" -command runMimi] -column 2 -row 3
|
||||||
|
grid [ttk::button .c.clear -text "Clean" -command clearAll] -column 3 -row 3
|
||||||
|
|
||||||
|
foreach w [winfo children .c] {grid configure $w -padx 5 -pady 5 }
|
||||||
|
|
||||||
|
vwait forever
|
Loading…
Reference in a new issue