Tkinter完整版doc资料Word文档格式.docx

上传人:b****6 文档编号:8604443 上传时间:2023-05-12 格式:DOCX 页数:88 大小:78.86KB
下载 相关 举报
Tkinter完整版doc资料Word文档格式.docx_第1页
第1页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第2页
第2页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第3页
第3页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第4页
第4页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第5页
第5页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第6页
第6页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第7页
第7页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第8页
第8页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第9页
第9页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第10页
第10页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第11页
第11页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第12页
第12页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第13页
第13页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第14页
第14页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第15页
第15页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第16页
第16页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第17页
第17页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第18页
第18页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第19页
第19页 / 共88页
Tkinter完整版doc资料Word文档格式.docx_第20页
第20页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Tkinter完整版doc资料Word文档格式.docx

《Tkinter完整版doc资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《Tkinter完整版doc资料Word文档格式.docx(88页珍藏版)》请在冰点文库上搜索。

Tkinter完整版doc资料Word文档格式.docx

#显示label,必须含有此语句

label.pack()

#root.pack()

#但root是不需要(严格地说是必须不这样使用),否则解释器抱怨

#进入消息循环

root.mainloop()

#控件的显示步骤:

#1.创建这个控件

#2.指定这个空间的master,即这个控件属于哪一个

#3.告诉GM(geometrymanager)有一个控件产生了

还有更简单的一个例子:

将‘HelloTkinter’打印到标题上,Label也不用创建了

root.title('

helloTkinter'

再没法儿简化了,就这样吧

2.在label上使用内置位图

bitmap的使用方法

label=Label(root,bitmap='

error'

#上面的代码使用了内置位图error

其他可用的位图:

*error

*hourglass

*info

*questhead

*question

*warning

*gray12

*gray25

*gray50

*gray75

若要查看各自的效果,可以使用相应的名称将bitmpa='

替换。

据说还可以使用自己指定的位图文件,网上找了一下,格式如下:

Label(root,bitmap="

@/path/bitmapname"

不过我试了一下,从来没有成功过,我已经将位图该为单色的了:

另:

还有的网上的文章说明如何使用PhotoImage和BitmapImage显示bmp或gif文件,提到一点

防止图像文件被python自动回收(garbagecollected),应将bmp或gif放到全局(global)或实体

(instance)中,使用如下两种方法,仍未奏效:

#使用image属性

#bm=PhotoImage(file='

c:

\\python.gif'

#label=Label(root,image=bm)

#label.bm=bm

#错误信息:

#TclError:

image"

pyimageXX"

doesn'

texist

#使用bitmap属性

#bm=BitmapImage(file='

\\python2.bmp'

#label=Label(root,bitmap=bm)

#label.pack()

formaterrorinbitmapdata

虽然二者均没有起作用,还是要说明一下,bitmap与image的关系,如果同时指定这两参数,image

优先。

3.改变控件的前景色和背景色

fg:

前景色

bg:

背景色

设置背景色的一个大的用处是:

可以判断控件的大小(不同的控件使用不同的颜色,后续内容

可以使用此特性来调试container)

#在创建Label时指定各自使用的颜色

可以使用的颜色值:

#使用颜色名称

Label(root,fg='

red'

bg='

blue'

text='

HelloIamTkinter'

).pack()

#使用颜色值#RRGGBB

#FF00FF'

#使用系统相关的颜色值(Windows),不建议使用这样的值,不利于平台移植

SystemButtonShadow'

(1).使用颜色名称

Red

Green

Blue

Yellow

LightBlue

......

(2).使用#RRGGBB

label=Label(root,fg='

指定背景色为绯红色

(3).除此之外,Tk还支持与OS相关的颜色值,如Windows支持

SystemActiveBorder,

SystemActiveCaption,

SystemAppWorkspace,

SystemBackground,

4.设置宽度与高度

width:

宽度

height:

高度

#创建三个Label,分别显示red,blue,yellow

#注意三个Label的大小,它们均与文本的长度有关

Label(root,text='

yellow'

#再创建三个Label,与上次不同的是这三个Label均使用width和heigth属性

#三个Label的大小由width和height指定

Label(root,bg='

width=10,height=3).pack()

5.同时使用图像与文本

compound:

指定文本(text)与图像(bitmap/image)是如何在Label上显示,缺省为None,

当指定image/bitmap时,文本(text)将被覆盖,只显示图像了。

可以使用的值:

left:

图像居左

right:

图像居右

top:

图像居上

bottom:

图像居下

center:

文字覆盖在图像上

bitmap/image:

显示在Label上的图像

text:

显示在Label上的文本

Error'

compound='

left'

bitmap='

#演示compound的使用方法

#图像与文本在Label中的位置

#图像居下

botton'

bottom'

#图像居上

top'

#图像居右

right'

#图像居左

#文字覆盖在图像上

center'

#消息循环

6.文本的多行显示

在Tk004中,使用width和heigth来指定控件的大小,如果指定的大小无法满足文本的要求是,会出现

什么现象呢?

如下代码:

Label(root,bg='

welcometo'

运行程序,超出Label的那部分文本被截断了,常用的方法是:

使用自动换行功能,及当文本长度大于

控件的宽度时,文本应该换到下一行显示,Tk不会自动处理,但提供了属性:

wraplength:

指定多少单位后开始换行

justify:

指定多行的对齐方式

ahchor:

指定文本(text)或图像(bitmap/image)在Label中的显示位置

可用的值:

e

w

n

s

ne

se

sw

sn

center

布局如下图

nwnne

wcentere

swsse

#左对齐,文本居中

width=40,height=3,wraplength=80,justify='

#居中对齐,文本居左

width=40,height=3,wraplength=80,anchor='

w'

#居中对齐,文本居右

e'

运行一下程序就可以直观的看出,justify与anchor的区别了:

一个用于控制多行的对齐;

另一个用于

控制整个文本块在Label中的位置

Button

(1)

#JTkinter教程之Button篇

(1)

#Button功能触发事件

1.一个简单的Button应用'

#定义Button的回调函数

defhelloButton():

print'

hellobutton'

#通过command属性来指定Button的回调函数

Button(root,text='

HelloButton'

command=helloButton).pack()

执行的结果:

每次点击一次,程序向标准输出打印'

以上为Button使用方法,可以

再做一下简化,如不设置Button的回调函数,这样也是允许的但这样的结果与Label没有什么太

大的区别,只是外观看起来有所不同罢了,失去了Button的作用。

#下面的relief=FLAT设置,就是一个Label了!

relief=FLAT).pack()

2.测试Button的relief属性'

#运行下面的代码可以看到Button的各个不同效果,均没有回调函数。

#flat,groove,raised,ridge,solid,orsunken

relief=GROOVE).pack()

relief=RAISED).pack()

relief=RIDGE).pack()

relief=SOLID).pack()

relief=SUNKEN).pack()

Button显示图像

image:

可以使用gif图像,图像的加载方法img=PhotoImage(root,file=filepath

bitmap:

使用X11格式的bitmap,Windows的Bitmap没法显示的,在Windows下使用GIMP2.4将windows

Bitmap转换为xbm文件,依旧无法使用.linux下的X11bitmap编辑器生成的bitmap还没有测试,但可

以使用内置的位图。

(1).使用位图文件

bp=BitmapImage(file="

\\python2.xbm"

Button(root,bitmap=bp).pack()

(2).使用位图数据

BITMAP="

"

#defineim_width32

#defineim_height32

staticcharim_bits[]={

0xaf,0x6d,0xeb,0xd6,0x55,0xdb,0xb6,0x2f,

0xaf,0xaa,0x6a,0x6d,0x55,0x7b,0xd7,0x1b,

0xad,0xd6,0xb5,0xae,0xad,0x55,0x6f,0x05,

0xad,0xba,0xab,0xd6,0xaa,0xd5,0x5f,0x93,

0xad,0x76,0x7d,0x67,0x5a,0xd5,0xd7,0xa3,

0xad,0xbd,0xfe,0xea,0x5a,0xab,0x69,0xb3,

0xad,0x55,0xde,0xd8,0x2e,0x2b,0xb5,0x6a,

0x69,0x4b,0x3f,0xb4,0x9e,0x92,0xb5,0xed,

0xd5,0xca,0x9c,0xb4,0x5a,0xa1,0x2a,0x6d,

0xad,0x6c,0x5f,0xda,0x2c,0x91,0xbb,0xf6,

0xad,0xaa,0x96,0xaa,0x5a,0xca,0x9d,0xfe,

0x2c,0xa5,0x2a,0xd3,0x9a,0x8a,0x4f,0xfd,

0x2c,0x25,0x4a,0x6b,0x4d,0x45,0x9f,0xba,

0x1a,0xaa,0x7a,0xb5,0xaa,0x44,0x6b,0x5b,

0x1a,0x55,0xfd,0x5e,0x4e,0xa2,0x6b,0x59,

0x9a,0xa4,0xde,0x4a,0x4a,0xd2,0xf5,0xaa

};

使用tuple数据来创建图像

bmp=BitmapImage(data=BITMAP)

Button(root,bitmap=bmp)

3.与Label一样,Button也可以同时显示文本与图像,使用属性compound'

#图像居下,居上,居右,居左,文字位于图像之上

4.控件焦点问题

创建三个Button,各自对应回调函数;

将第二个Button设置焦点,程序运行是按“Enter”,判断

程序的打印结果

defcb1():

button1clicked'

defcb2(event):

button2clicked'

defcb3():

button3clicked'

b1=Button(root,text='

Button1'

command=cb1)

b2=Button(root,text='

Button2'

b2.bind("

<

Return>

cb2)

b3=Button(root,text='

Button3'

command=cb3)

b1.pack()

b2.pack()

b3.pack()

b2.focus_set()

上例中使用了bind方法,它建立事件与回调函数(响应函数)之间的关系,每当产生<

Enter>

事件

后,程序便自动的调用cb2,与cb1,cb3不同的是,它本身还带有一个参数----event,这个参数传递

响应事件的信息。

defprintEventInfo(event):

event.time='

event.time

event.type='

event.type

event.WidgetId='

event.widget

event.KeySymbol='

event.keysym

b=Button(root,text='

Infomation'

b.bind("

printEventInfo)

b.pack()

b.focus_set()

root.mainloop()

犯了个错误,将<

写成<

了,结果是:

当鼠标进入Button区域后,事件printEventInfo

被调用。

程序打印出了event的信息。

Button

(2)

#Tkinter教程之Button篇

(2)

5.指定Button的宽度与高度

heigth:

使用三种方式:

1.创建Button对象时,指定宽度与高度

2.使用属性width和height来指定宽度与高度

3.使用configure方法来指定宽度与高度

30X1'

width=30,height=2)

30X2'

b2['

width'

]=30

height'

]=3

30X3'

b3.configure(width=30,height=3)

#上述的三种方法同样也适合其他的控件

6.设置Button文本在控件上的显示位置

anchor:

使用的值为:

n(north

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2