Tk_入门_参考IT屋学习

Tk特殊变量

Sr.No.

特殊变量&说明
1

tk_library

用于设置标准Tk库的位置.

2

tk_patchLevel

指当前的补丁Tk解释器的级别.

3

tk_strictMotif

当非零时,Tk会尽可能地坚持Motif的外观.

4

tk_version

显示Tk版本.

示例:

puts $tk_version   ;#输出Tk版本

=>8.5

puts $tk_library  ;#输出标准Tk库路径

=>/Library/Frameworks/Tk.framework/Versions/8.6/Resources/Scripts

puts $tk_patchLevel ;# 输出当前补丁Tk解释器的级别

=>8.6.1

puts $tk_strictMotif ;#当非零时,Tk尽可能的坚持Motifi的外观

=>0

Tk - Widgets Overview

创建Tk窗口小部件的语法:type variableName arguments options

在Tk中,根窗口以句号(.)和窗口的元素名命名:例如.label

常见参数/选项

Sr.No.语法&说明
1

-background color

用于设置小部件的背景颜色.

2

-borderwidth width

用于绘制在3D效果中使用边框.

3

-font fontDescriptor

用于设置小部件的字体.

4

-foreground color

用于设置小部件的前景色.

5

-height number

用于设置小部件的高度.

6

-highlightbackground color

当窗口小部件没有输入焦点时,用于设置颜色矩形以在窗口小部件周围绘制.

7

-highlightcolor color

当窗口小部件具有输入焦点时,用于设置颜色矩形以在窗口小部件周围绘制.

8

-padx number

设置小工具的padx.

9

-pady number

设置小部件的pady.

10

-relief condition

设置此小部件的3D浮雕.条件可能会升高,凹陷,平坦,隆起,凹陷或凹陷.

11

 -text text

设置小部件的文本.

12

-textvariable varName

与窗口小部件关联的变量.当widget的文本发生变化时,该变量设置为widget的文本.

13

-width number

设置小部件的宽度.

基本小部件:

Sr.No.Widget&说明
1

Label

用于显示单行文字的小工具.

2

Button

可点击的小工具并触发行动.

3

Entry

用于接受单行文本作为输入的小部件.

4

Message

用于显示多行文本的小部件.

5

Text

用于显示和选择编辑多行文字的小工具.

6

Toplevel

窗口管理器提供所有边框和装饰的窗口.

#label:用于显示单行文本的小部件 显示文本 label Widdget 变量labeltext
grid [label .myLabel -text "Label Widget" -textvariable labelText] 

#test 用于显示多行文本的小部件 设置小部件的宽高
grid [text .myText -width 20 -height 5]
#text小部件的内容
.myText insert 1.0 "Text\nWidget\n"

#entry 小部件用于接收单行文本作为输入
grid [entry .myEntry -text "Entry Widget"]

#message:用于显示多行文本的小部件;背景色、字体色、\n代表换行
grid [message .myMessage -background red -foreground white -text "Message\nWidget"]

#button :可点击的小工具并触发行动
grid [button .myButton1  -text "Button" -command "set labelText clicked"]

布局小部件:

Sr.No.Widget&说明
1

Frame

用于容纳其他小部件的容器小部件.

2

Place

小工具在特定位置保存其他小部件坐标的原点和确切大小.

3

Pack

在将小部件放入父窗口小部件之前,用于组织小部件的简单窗口小部件.

4

Grid

嵌套小部件的小工具包装在不同的方向.

#用于容纳其它小部件的容器小部件,背景色、relief代表不同浮雕框架:raised、sunken、flat、#groove、或者ridge,设置小部件的 X y位置  以及小部件的宽度高度。
frame .myFrame1 -background red  -relief ridge -borderwidth 15 -padx 10 -pady 10 -height 100 -width 100
frame .myFrame2 -background blue  -relief ridge -borderwidth 8 -padx 10 -pady 10 -height 100 -width 50
#pack:再将小部件放入父窗小部件之前,用于组织小部件的简单窗口小部件。
pack .myFrame1 
pack .myFrame2

选择小部件:

Sr.No.小工具&说明
1

Radiobutton

具有一组开/关按钮和标签的小工具,其中一个可以被选中.

2

Checkbutton

具有一组开/关按钮和标签的小工具,其中许多可以被选中..

3

Menu

作为持有人的小工具对于菜单项.

4

Listbox

显示单元格列表的小组件,可以选择其中的一个或多个.

#创建用于容纳其他小部件的容器小部件.gender
grid [frame .gender ]

#常见用于显示单行文字小工具,显示“Male” 变量名“没有label1”
grid [label .label1  -text "Male" -textvariable myLabel1 ]

#radiobutton:具有一组开/关按钮和标签的小工具,放在.gender容器中,其中一个可以被选中
#显示文本“Male”、命令:把Male 显示到label1上 
grid [radiobutton .gender.maleBtn -text "Male"   -variable gender -value "Male" -command "set  myLabel1 Male"] -row 1 -column 2

grid [radiobutton .gender.femaleBtn -text "Female" -variable gender -value "Female" -command "set  myLabel1 Female"] -row 1 -column 3
.gender.maleBtn select

grid [label .myLabel2  -text "Range 1 not selected" -textvariable myLabelValue2 ]

grid [checkbutton .chk1 -text "Range 1" -variable occupied1 -command {if {$occupied1 } {
   set myLabelValue2 {Range 1 selected}
} else {
   set myLabelValue2 {Range 1 not selected}
} }]
proc setLabel {text} {
   .label1 configure -text $text 
}

Mega Widgets:

Sr.No.Widget&说明
1

Dialog

用于显示对话框的小工具.

2

Spinbox

允许用户选择数字的小工具.

3

Combobox

将条目与可供选择的列表组合使用的小工具.

4

Notebook

选项卡式窗口小部件,有助于使用索引选项卡在多个页面之一之间切换.

5

Progressbar

为长时间操作的进度提供视觉反馈的小工具喜欢文件上传.

6

Treeview

显示小部件并允许浏览更多形式的项目层次结构树.

7

Scrollbar

滚动小部件而不使用文本或画布小部件.

8

Scale

比例小部件通过滑块选择数值.

ttk::treeview .tree -columns "Creator Year" -displaycolumns "Year Creator" 
.tree heading Creator -text "Creator" -anchor center
.tree heading Year -text "Year" -anchor center
pack .tree
.tree insert {} end -id Languages -text "Languages"
.tree insert Languages end -text C -values [list "Dennis Ritchie" "1990"]
proc scaleMe {mywidget scaleValue} {
   $mywidget configure -length $scaleValue
} 
pack [scale .s2  -from 100.0 -to 200.0 -length 100 -background yellow -borderwidth 5 -font{Helvetica -18 bold} -foreground red -width 40 -relief ridge -orien horizontal -variable a -command "scaleMe .s2" ]
pack [ttk::progressbar .p1 -orient horizontal -length 200 -mode indeterminate -value 90]
pack [ttk::progressbar .p2 -orient horizontal -length 200 -mode determinate -variable a -maximum 75 -value 20]

其他小部件:

Sr.No.小工具&说明
1

Canvas:画布小部件

用于显示图形和图像的绘图小部件..

画布小部件的可用选项:

Sr.No.语法&说明
1

background color

用于设置小部件的背景颜色.

2

 -closeenough distance

设定贴近度鼠标光标到可显示的项目.默认值为1.0像素.这个值可能是一个分数,必须是正数.

3

-scrollregion boundingBox

此画布总面积的边界框.

4

-height number

用于设置小部件的高度.

5

-width number

设置小部件的宽度.

6

-xscrollincrement size

请求滚动时水平滚动的数量.

7

-yscrollincrement size

请求滚动时垂直滚动的数量.

画布小部件示例:

canvas .myCanvas -background red -width 100 -height 100
pack .myCanvas

在画布中绘制的可用小部件:

Sr.No.Widget&说明
1Line

画一条线.

2Arc

绘制弧线.

3Rectangle

绘制一个矩形.

4Oval

画一个椭圆形.

5Polygon

绘制多边形.

6Text

绘制文本.

7Bitmap

绘制位图.

8Image

绘制图像.

#canvas:画布小部件
canvas .myCanvas -background red -width 200 -height 200 
pack .myCanvas

#
.myCanvas create arc 10 10 50 50 -fill yellow
.myCanvas create line 10 30 50 50 100 10 -arrow both -fill yellow -smooth true
   -splinesteps 2
.myCanvas create oval 50 50 100 80 -fill yellow
.myCanvas create polygon 50 150 100 80 120 120 100 190 -fill yellow -outline green
.myCanvas create rectangle 150 150 170 170  -fill yellow
.myCanvas create text 170 20 -fill yellow -text "Hello" -font {Helvetica -18 bold}
.myCanvas create bitmap 180 50 -bitmap info

Tk-字体 

Sr.No.语法&安培;说明
1

-family familyName

字体系列的名称.

2

-size number

字体大小.

3

-weight level

字体的重量

 创建字体的语法:font create fontName options;

font create myFont -family Helvetica -size 18 -weight bold 
pack [label .myLabel -font myFont -text "Hello World"]

获得所有可用字体:

puts [font families]

Tk-图像

创建图像语法:imge create type name options

Sr.No.语法&说明
1

-file fileName

图像文件名的名称.

2

-height number

用于设置小部件的高度.

3

-width number

设置小部件的宽度.

4

-data string

基础64编码字符串中的图像.

Tk-活动

最简单形式的事件是在命令的帮助下处理的.事件处理的一个简单示例是使用按钮进行事件处理,并显示在下面和下面;

#定义一个过程
proc myEvent { }  {
    puts "Event triggeregd"
}

#定义按键,并在按下时触发proc myEvent
pack [button .mybutton1 -text "Button1" -command myEvent]

显示延迟文本动画事件的简单程序:

#定义一个延时过程
proc delay {} {
   for {set j 0} {$j < 10000000} {incr j} {} 
}
 
#label 显示
label .myLabel -text "Hello................" -width 25
pack .myLabel
set str "Hello................"
for {set i [string length $str]} {$i > -2} {set i [expr $i-1]} {
   .myLabel configure -text [string range $str 0 $i]
   update
   delay
}

延迟后显示

proc addText {} {
   label .myLabel -text "Hello................" -width 25
   pack .myLabel
}
after 1000 addText

#更详细活动事件见Tk - 活动 在线实例教程 - IT屋 (it1352.com)  包括:事件绑定、键盘事件示例、鼠标事件示例、将事件与按钮示例连接。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值