Tkinter教程(2)

2019-08-31 15:05

'''6.文本的多行显示

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

什么现象呢?如下代码:

Label(root,bg = 'welcome to jcodeer.cublog.cn',width = 10,height = 3).pack() 运行程序,超出Label的那部分文本被截断了,常用的方法是:使用自动换行功能,及当文本长度大于

控件的宽度时,文本应该换到下一行显示,Tk不会自动处理,但提供了属性: wraplength: 指定多少单位后开始换行 justify: 指定多行的对齐方式

ahchor: 指定文本(text)或图像(bitmap/image)在Label中的显示位置 可用的值: e w n s ne se sw sn center 布局如下图

nw n ne w center e sw s se '''

from Tkinter import * root = Tk()

#左对齐,文本居中

Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'yellow',width = 40,height = 3,wraplength = 80,justify = 'left').pack() (默认居中对齐,文本剧中) #居中对齐,文本居左

Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'red',width = 40,height = 3,wraplength = 80,anchor = 'w').pack() #居中对齐,文本居右

Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'blue',width = 40,height = 3,wraplength = 80,anchor = 'e').pack()

root.mainloop() '''

运行一下程序就可以直观的看出,justify与anchor的区别了:一个用于控制多行的对齐;另一个用于

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

Button(1)

#JTkinter教程之Button篇(1) #Button功能触发事件

'''1.一个简单的Button应用''' from Tkinter import *

#定义Button的回调函数 def helloButton():

print 'hello button' root = Tk()

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

Button(root,text = 'Hello Button',command = helloButton).pack() root.mainloop() '''

执行的结果:每次点击一次,程序向标准输出打印'hello button',以上为Button使用方法,可以

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

大的区别,只是外观看起来有所不同罢了,失去了Button的作用。 from Tkinter import * root = Tk()

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

Button(root,text = 'hello button',relief=FLAT).pack() root.mainloop() '''

'''2.测试Button的relief属性'''

#运行下面的代码可以看到Button的各个不同效果,均没有回调函数。 from Tkinter import * root = Tk()

#flat, groove, raised, ridge, solid, or sunken

Button(root,text = 'hello button',relief=FLAT).pack() Button(root,text = 'hello button',relief=GROOVE).pack() Button(root,text = 'hello button',relief=RAISED).pack() Button(root,text = 'hello button',relief=RIDGE).pack() Button(root,text = 'hello button',relief=SOLID).pack() Button(root,text = 'hello button',relief=SUNKEN).pack()

root.mainloop()

'''

Button显示图像

image:可以使用gif图像,图像的加载方法img = PhotoImage(root,file = filepath bitmap:使用X11 格式的bitmap,Windows的Bitmap没法显示的,在Windows下使用GIMP2.4将windows

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

以使用内置的位图。 (1).使用位图文件

bp = BitmapImage(file = \ Button(root,bitmap = bp).pack() (2).使用位图数据 BITMAP = \

#define im_width 32 #define im_height 32

static char im_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''' from Tkinter import * root = Tk()

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

Button(root,text = 'botton',compound = 'bottom',bitmap = 'error').pack() Button(root,text = 'top',compound = 'top',bitmap = 'error').pack()

Button(root,text = 'right',compound = 'right',bitmap = 'error').pack() Button(root,text = 'left',compound = 'left',bitmap = 'error').pack() Button(root,text = 'center',compound = 'center',bitmap = 'error').pack() #消息循环

root.mainloop()

'''4.控件焦点问题 创建三个Button,各自对应回调函数;将第二个Button设置焦点,程序运行是按“Enter”,判断

程序的打印结果 '''

from Tkinter import *

def cb1():

print 'button1 clicked' def cb2(event):

print 'button2 clicked' def cb3():

print 'button3 clicked'

root = Tk()

b1 = Button(root,text = 'Button1',command = cb1) b2 = Button(root,text = 'Button2') b2.bind(\,cb2)

b3 = Button(root,text = 'Button3',command = cb3) b1.pack() b2.pack() b3.pack()

b2.focus_set() root.mainloop() '''

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

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

响应事件的信息。 '''

from Tkinter import *

def printEventInfo(event):

print 'event.time = ' , event.time print 'event.type = ' , event.type

print 'event.WidgetId = ', event.widget

print 'event.KeySymbol = ',event.keysym root = Tk()

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的宽度与高度 width: 宽度 heigth: 高度 使用三种方式:

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

2.使用属性width和height来指定宽度与高度 3.使用configure方法来指定宽度与高度 '''

from Tkinter import * root = Tk()

b1 = Button(root,text = '30X1',width = 30,height = 2) b1.pack()

b2 = Button(root,text = '30X2') b2['width'] = 30

b2['height'] = 3 b2.pack()

b3 = Button(root,text = '30X3') b3.configure(width = 30,height = 3) b3.pack()

root.mainloop()

# 上述的三种方法同样也适合其他的控件 '''6.设置Button文本在控件上的显示位置


Tkinter教程(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版小学语文二年级下册8.彩色的梦第二课时公开课教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: