Tkinter教程(9)

2019-08-31 15:05

for i in range(10):

Message(root,text = 'A'*i,aspect = 400).pack() root.mainloop()

#默认情况向wider/height = 1.5,可以使用aspect属性,设置为4,即宽为高的4倍,可以显示10个'A'

'''4.Message绑定变量''' # -*- coding: cp936 -*- from Tkinter import * root = Tk() v = StringVar() v.set('000')

for i in range(10):

Message(root,text = 'A',textvariable = v).pack()

#打印当前的v值,只要是其中的一个Message的值发生变化,则此v值就会改变。 print v.get() root.mainloop() #绑定变量v,虽然创建Message时使用了text来指定Message的值,绑定的变量优先级高,可以改变text #指定的值。

'''5.测试一下justify属性''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

for i in [LEFT,RIGHT,CENTER]:

Message(root,text = 'ABC DEF GHI',justify = i).pack() root.mainloop()

#显示的文本自动断行,上下行分别使用了左对齐,右对齐和居中对齐

OptionMenu

'''Tkinter教程之OptionMenu篇'''

#OptionMenu为可选菜单,与Combox功能类似。 '''1.创建OptionMenu''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

v = StringVar(root) v.set('Python')

om = OptionMenu(root,v,'Python','PHP','CPP','C','Java','JavaScript','VBScript') om.pack()

root.mainloop()

#显示的文本自动断行,上下行分别使用了左对齐,右对齐和居中对齐 # -*- coding: cp936 -*- from Tkinter import * root = Tk()

v = StringVar(root)

#创建一个OptionMenu控件 om = OptionMenu(root, v,

'Python', 'PHP', 'CPP', 'C', 'Java',

'JavaScript', 'VBScript' ) om.pack()

root.mainloop()

#OptionMenu的创建需要两个必要的参数,与当前值绑定的变量,通常为一StringVar类型;另一

#个是提供可选的内容列表,由OptionMenu的变参数指定。

'''2.设置OptionMenu的显示值'''

#当OptionMenu与变量绑定后,直接使用变量赋值的方法即可改变当前的值 # -*- coding: cp936 -*- from Tkinter import * root = Tk()

v = StringVar(root) v.set('VBScript')

#创建一个OptionMenu控件 om = OptionMenu(root, v,

'Python', 'PHP', 'CPP', 'C', 'Java',

'JavaScript', 'VBScript' ) om.pack()

print v.get()

root.mainloop()

#运行程序,OptionMenu默认值为\,打印出的数值也为\

#如果设置的值不包含在当前的列表中,会是什么结果?如下的代码使用\来测试 # -*- coding: cp936 -*- from Tkinter import * root = Tk()

v = StringVar(root) v.set('Tkinter')

#创建一个OptionMenu控件 om = OptionMenu(root, v,

'Python', 'PHP', 'CPP', 'C', 'Java',

'JavaScript', 'VBScript' ) om.pack() print v.get()

root.mainloop()

#程序依旧是默认值改变为Tkinter,打印结果也变为Tkinter,但Tkinter不会添加到OptionMenu的列表中,也就是说,当选择其它的选项时,Tkinter的值会丢失。 '''3.打印OptionMenu的值''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

v = StringVar(root) v.set('Tkinter')

def printOption(event): print v.get()

#创建一个OptionMenu控件 om = OptionMenu(root, v,

'Python', 'PHP', 'CPP', 'C', 'Java',

'JavaScript',

'VBScript' )

om.bind('',printOption) om.pack()

root.mainloop()

#每次点击OptionMenu程序打印出上次选中的项值 '''使用list作为OptionMenu的选项''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

Lang = ['Python','PHP','CPP','C','Java','JavaScript','VBScript'] v = StringVar(root) v.set('Tkinter')

def printOption(event): print v.get()

#创建一个OptionMenu控件,使用了apply函数 om = apply(OptionMenu,(root,v) + tuple(Lang)) om.bind('',printOption) om.pack()

root.mainloop()

Frame

'''Tkinter教程之Frame篇'''

#Frame就是屏幕上的一块矩形区域,多是用来作为容器(container)来布局窗体。 '''1.创建Frame'''

# -*- coding: cp936 -*- from Tkinter import * root = Tk()

#以不同的颜色区别各个frame

for fm in ['red','blue','yellow','green','white','black']:

#注意这个创建Frame的方法与其它创建控件的方法不同,第一个参数不是root Frame(height = 20,width = 400,bg = fm).pack() root.mainloop()

#添加不同颜色的Frame,大小均为20*400 '''2.向Frame中添加Widget''' # -*- coding: cp936 -*- from Tkinter import * root = Tk() fm = []

#以不同的颜色区别各个frame for color in ['red','blue']:

#注意这个创建Frame的方法与其它创建控件的方法不同,第一个参数不是root fm.append(Frame(height = 200,width = 400,bg = color)) #向下面的Frame中添加一个Label

Label(fm[1],text = 'Hello label').pack() fm[0].pack() fm[1].pack() root.mainloop()

#Label被添加到下面的Frame中了,而不是root默认的最上方。 #大部分的方法来自gm,留到后面gm时再介绍

'''3.Tk8.4以后Frame又添加了一类LabelFrame,添加了Title的支持''' from Tkinter import * root = Tk()

for lf in ['red','blue','yellow']:

#可以使用text属性指定Frame的title

LabelFrame(height = 200,width = 300,text = lf).pack() root.mainloop()

PanedWindow

'''Tkinter教程之PanedWindow'''

#PaneWindow(面板)为一gm,用来管理子Widget '''1.向PanedWindow中添加Pane''' #使用add方法

# -*- coding: cp936 -*- from Tkinter import * root = Tk()

panes = PanedWindow(orient = VERTICAL) panes.pack(fill = BOTH,expand = 1)

for w in [Label,Button,Checkbutton,Radiobutton]: panes.add(w(panes,text = 'hello')) root.mainloop()

#每个pane中创建一个widget

'''2.删除PanedWindow指定的pane''' #使用forget/remove方法 # -*- coding: cp936 -*- from Tkinter import * root = Tk() ws = []

panes = PanedWindow(orient = VERTICAL) panes.pack(fill = BOTH,expand = 1)


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

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

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

马上注册会员

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