X窗口系统
基于客戶/服务器模型
分四个部分:X服务器,X协議,X库,X客戶
X服务器:在PC上,是XFree86
X协議:用戶透明的
Xlib:就是接口了,很有用(不是GUI),不果太底层
X工具包:包括:Tk,Motif,GTK+,Qt等等
X窗口管理器:一个特殊的X客戶,负责管理其他X客戶
X程序设计模型:启动,主循环,退出整理
程序设计:using Tk
wish
#!/usr/bin/wish
set lang tcl
set state 1
checkbutton .lan -text "Language" -command {changeState} -relief flat\
-variable state -onvalue 1 -offvalue 0
radiobutton .c -text "C" -variable lang -value c -justify left
radiobutton .tcl -text "Tcl" -variable lang -value tcl -justify left
radiobutton .perl -text "Perl" -variable lang -value perl -justify left
button .show -text "Show Value" -command {showVars}
button .exit -text "Exit" -command {exit}
grid .lan -row 1 -column 0 -sticky "w"
grid .c -row 0 -column 1 -sticky "w"
grid .tcl -row 1 -column 1 -sticky "w"
grid .perl -row 2 -column 1 -sticky "w"
grid .show -row 3 -column 0 -sticky "w"
grid .exit -row 3 -column 1 -sticky "w"
proc changeState args {
global state
if { $state=="0" } {
catch {
.c config -state disabled
.tcl config -state disabled
.perl config -state disabled
}
} else {
.c config -state normal
.tcl config -state normal
.perl config -state normal
}
}
proc showVars args {
global state lang
if { $state == "0" } {
puts "No language is selected"
} else {
puts "The languafe selected is $lang"
}
}
没有评论:
发表评论