Tkinter教程(6)

2019-08-31 15:05

#可能不会调用,通过上例可以看到二者的值是完全一样的。

'''5.控制显示位数,可以理解为:Scale的值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2或1.2000都是可以的'''

#属性digits是控制显示的数字位数,将上面的例子中的数据以8位形式显示,在最后一位会添加一个0

# -*- coding: cp936 -*- from Tkinter import *

root = Tk()

def printScale(text): print 'text = ',text print 'v = ',v.get() v = StringVar() Scale(root,

from_ = 0, #设置最小值 to = 100.0, #设置最大值

resolution = 0.0001, #设置步距值 orient = HORIZONTAL, #设置水平方向 digits = 8, #设置显示的位数为8 variable = v, #绑定变量

command = printScale #设置回调函数 ).pack() print v.get() root.mainloop()

'''6.设置Scale的标签属性label''' # -*- coding: cp936 -*- from Tkinter import *

root = Tk() Scale(root,

from_ = 0, #设置最大值 to = 100.0, #设置最小值

orient = HORIZONTAL, #设置水平方向 label = 'choice:', #设置标签值 ).pack() root.mainloop()

#由label设置的值会显示在水平Scale的上方,用于提示信息

'''7.设置/取得Scale的值''' # -*- coding: cp936 -*- from Tkinter import *

root = Tk()

sl = Scale(root)

sl.set(50) #将Scale的值设置为50 print sl.get() #打印当前的Scale的值 sl.pack()

root.mainloop()

#slider的位置位于了中间,sl.set(50)起作用了,打印值为50。

Spinbox

'''Tkinter教程之Spinbox篇'''

#与Entry类似,但可以指定输入范围值

'''1.创建一个Spinbox''' from Tkinter import * root = Tk()

Spinbox(root).pack() root.mainloop()

#只是创建了一个Spinbox,其它的什么也做不了,与Scale不同,Scale使用缺省值就可以控制 值的改变。

'''2.设置Spinbox的最大、最小值和步距值''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

Spinbox(root,

from_ = 0, #设置最小值 to = 100, #设置最大值

increment = 5 #设置增量值为5,这个与Scale的resolution意思相同 ).pack() root.mainloop()

'''3.设置Spinbox的值,设置属性values,设置此值后,每次更新值将使用values指定的值,'''

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

sb = Spinbox(root,

values = (0,2,20,40,-1), increment = 2 ) sb.pack()

# 打印当前的Spinbox的值,为一tuple print sb['values'] root.mainloop()

#显示的第一个值为0,up按钮则为2,20,40,-1,不再是增2操作,它会使用tuple的索引递

增,至到tuple的最后一个项时,将不再增加;

#down按钮与up按钮恰好相反,它使用tuple的索引递减

'''4.Spinbox绑定变量 ''' # -*- coding: cp936 -*- from Tkinter import * root = Tk() v = StringVar() sb = Spinbox(root,

values = (0,2,20,40,-1), increment = 2, textvariable = v ) v.set(20) print v.get() sb.pack()

# 打印当前的Spinbox的值,为一tuple root.mainloop()

#上面的代码将变量v与sb绑定,并将Spinbox的初始值设置为20,运行程序,Spinbox的值显示为20,再点击up按钮,此时值变为40,

#即tuple的下一个值,再看下面的代码,与这个不同的是设置的值不包含在tuple之内 # -*- coding: cp936 -*- from Tkinter import * root = Tk() v = StringVar() sb = Spinbox(root,

values = (0,2,20,40,-1), increment = 2, textvariable = v ) v.set(200) print v.get() sb.pack()

# 打印当前的Spinbox的值,为一tuple root.mainloop()

#运行程序,显示的值为200,再次点击up按钮,显示的值为2,即虽然Spinbox能将值显示出来,但并不会将200添加到变量中,此时的

#索引值依旧为0,因为没有找到200的项。当点击up时,索引值变为1,即显示的值为2。 '''5.设置Spinbox的回调函数''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

def printSpin(): print 'Spinbox'

sb = Spinbox(root,

from_ = 0, #最小值 to = 10, #最大值

command = printSpin#回调函数 )

sb.pack()

root.mainloop()

#每次点击Spinbox按钮时就会调用printSpin函数,打印出'Spinbox'。与Scale不同的是:它不需要参数。

'''6.打印Spinbox的当前内容,是显示的值,不是values的值。''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

def printSpin():

# 使用get()方法来得到当前的显示值 print sb.get() sb = Spinbox(root,

from_ = 0, #最小值 to = 10, #最大值

command = printSpin#回调函数 )

sb.pack()

root.mainloop()

#每次点击Spinbox按钮时就会调用printSpin函数,打印出Spinbox的当前值。

'''7.删除Spinbox指定位置的字符(这是个有问题的程序)'''

#在回调函数中使用delete,Spinbox初始值为1234,点击up一次Spinbox的值变为235,再次点击变为36,再次点击变为7,但实际执行结果

#为第一次点击235,再次点击为234,以后所有的点击操作均为此值。不知为何。 # -*- coding: cp936 -*- from Tkinter import * root = Tk()

def printSpin(): sb.delete(0) print sb.get()

sb = Spinbox(root,

from_ = 1234, #最小值 to = 9999, #最大值 increment = 1,

command = printSpin#回调函数

) sb.pack()

root.mainloop()

# 如果不使用回调函数,两次调用delete则可以正常,工作如下代码: # -*- coding: cp936 -*- from Tkinter import * root = Tk()

sb = Spinbox(root,

from_ = 1234, #最小值 to = 9999, #最大值 increment = 1 ) sb.delete(0) sb.delete(0) print sb.get() sb.pack()

root.mainloop()

#此程序正常,可以打印出正确结果'34'

'''关于delete回调函数异常问题,又使用如下代码作了实验''' # -*- coding: cp936 -*- from Tkinter import * root = Tk()

def printSpin():

# 使用delete()方法删除指定索引的字符 sb.delete(0) print sb.get() sb = Spinbox(root,

values = (1234,234,34,4), command = printSpin ) sb.pack()

root.mainloop()

#则这个程序点击up可以打印出34,再次点击则为空。 '''

这个是可以工作的:①当前的值为1234,②点击up按钮时,程序调用回调函数printSpin将Spinbox的当

前值变为234;③Spinbox查找值为234的项,得到索引为1,即当前的索引值变为1,up还会将索引增1,即变为2,所有显示的值

为34,为了更好理解,用如下代码再次测试: '''

# -*- coding: cp936 -*-


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

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

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

马上注册会员

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